NSRangeException in GADCategories_GADAdView_VideoAdditions

230 views
Skip to first unread message

Marc

unread,
May 1, 2018, 9:22:54 AM5/1/18
to Google Mobile Ads SDK Developers
I just released an updated version of my app yesterday that includes Google-Mobile-Ads-SDK 7.30.0. This morning, I received a notification that Crashlytics had caught this exception:

Fatal Exception: NSRangeException
*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array

0
CoreFoundation
__exceptionPreprocess
1
libobjc.A.dylib
objc_exception_throw
2
CoreFoundation
_CFArgv
3
CoreFoundation
-[__NSArrayM objectAtIndex:]
4
CoreFoundation
-[NSMutableArray removeObject:]

5
Knit and Crochet Counter
GADCategories_GADAdView_VideoAdditions
6
Knit and Crochet Counter
GADCategories_GADAdView_VideoAdditions
7
CoreFoundation
__invoking___
8
CoreFoundation
-[NSInvocation invoke]
9
AVFoundation
__104-[AVAssetResourceLoader _performDelegateSelector:withObject:representingNewRequest:key:fallbackHandler:]_block_invoke
10
AVFoundation
-[AVAssetResourceLoader _performDelegateCallbackSynchronouslyIfCurrentDelegateQueueIsQueue:delegateCallbackBlock:]
11
libdispatch.dylib
_dispatch_call_block_and_release
12
libdispatch.dylib
_dispatch_client_callout
13
libdispatch.dylib
_dispatch_root_queue_drain
14
libdispatch.dylib
_dispatch_worker_thread3
15
libsystem_pthread.dylib
_pthread_wqthread
16
libsystem_pthread.dylib
start_wqthread

Other potentially relevant information:


Device
 iPhone 6
 Portrait
 99.58 MB
 23.81 GB

Operating System
 11.3.0 (15E216)
 Portrait
No

Crash
 May 1, 2018, 1:40:00 AM
 2.6.0 (526)

mobileadssdk-a...@google.com

unread,
May 1, 2018, 11:45:34 AM5/1/18
to Marc, Google Mobile Ads SDK Developers
Hi Marc,

Thanks for reaching out to us. Can you please share the following information for us to investigate the issue:
  • Complete Crash logs/Crashlytics link
  • Steps to reproduce the issue
  • Sample app if you are able to reproduce this locally.
  • Charles logs 
  • App link in AppStore 
Regards,
Deepika Uragayala
Mobile Ads SDK Team
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

--

---
You received this message because you are subscribed to the Google Groups "Google Mobile Ads SDK Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-admob-ads-sdk+unsub...@googlegroups.com.
To post to this group, send email to google-admob-ads-sdk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-admob-ads-sdk/01ca57e4-3786-4ab4-a295-2cb0e97a6ab2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Marc

unread,
May 1, 2018, 12:42:30 PM5/1/18
to mobileadssdk-a...@google.com, Google Mobile Ads SDK Developers
Thanks for reaching out to us. Can you please share the following information for us to investigate the issue:
  • Complete Crash logs/Crashlytics link
  • Steps to reproduce the issue
  • Sample app if you are able to reproduce this locally.
  • Charles logs 
  • App link in AppStore 
I would love to get you the full logs or a link to the report, but I cannot see any button or link to give you. I'm using Firebase Crashlytics, so if you know of a way I can share the crash with you, please let me know so I can do that.


I have no additional information as this did not happen on my device. This is an unknown user's iPhone.

For lack of any other way that I can consider to get you all the threads' tracebacks, I'll copy and paste them here.

Fatal Exception: NSRangeException
*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array
keyboard_arrow_up
0
CoreFoundation
__exceptionPreprocess
1
libobjc.A.dylib
objc_exception_throw
2
CoreFoundation
_CFArgv
3
CoreFoundation
-[__NSArrayM objectAtIndex:]
4
CoreFoundation
-[NSMutableArray removeObject:]
arrow_right
5
Crashed: com.twitter.crashlytics.ios.exception
SIGABRT ABORT 0x0000000184d0d2ec
keyboard_arrow_up
0
Knit and Crochet Counter
CLSProcessRecordAllThreads + 4308013892
1
Knit and Crochet Counter
CLSProcessRecordAllThreads + 4308013892
2
Knit and Crochet Counter
CLSProcessRecordAllThreads + 4308013568
3
Knit and Crochet Counter
CLSHandler + 4307945184
4
Knit and Crochet Counter
__CLSExceptionRecord_block_invoke + 4308005724
5
libdispatch.dylib
_dispatch_client_callout + 16
6
libdispatch.dylib
_dispatch_queue_barrier_sync_invoke_and_complete + 56
7
Knit and Crochet Counter
CLSExceptionRecord + 4308004336
8
Knit and Crochet Counter
CLSExceptionRecordNSException + 4308003864
9
Knit and Crochet Counter
CLSTerminateHandler() + 4308002860
10
libc++abi.dylib
std::__terminate(void (*)()) + 16
11
libc++abi.dylib
__cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 130
12
libobjc.A.dylib
_objc_exception_destructor(void*) + 362
13
CoreFoundation
_CFArgv + 110
14
CoreFoundation
-[__NSArrayM objectAtIndex:] + 192
15
CoreFoundation
-[NSMutableArray removeObject:] + 180
16
Knit and Crochet Counter
GADCategories_GADAdView_VideoAdditions + 4309674772
17
Knit and Crochet Counter
GADCategories_GADAdView_VideoAdditions + 4309673180
18
CoreFoundation
__invoking___ + 144
19
CoreFoundation
-[NSInvocation invoke] + 284
20
AVFoundation
__104-[AVAssetResourceLoader _performDelegateSelector:withObject:representingNewRequest:key:fallbackHandler:]_block_invoke + 264
21
AVFoundation
-[AVAssetResourceLoader _performDelegateCallbackSynchronouslyIfCurrentDelegateQueueIsQueue:delegateCallbackBlock:] + 272
22
libdispatch.dylib
_dispatch_call_block_and_release + 24
23
libdispatch.dylib
_dispatch_client_callout + 16
24
libdispatch.dylib
_dispatch_root_queue_drain + 924
25
libdispatch.dylib
_dispatch_worker_thread3 + 120
26
libsystem_pthread.dylib
_pthread_wqthread + 1176
27
libsystem_pthread.dylib
start_wqthread + 4
com.apple.CFStream.LegacyThread
keyboard_arrow_up
0
libsystem_kernel.dylib
mach_msg_trap + 8
1
libsystem_kernel.dylib
mach_msg + 72
2
CoreFoundation
__CFRunLoopServiceMachPort + 196
3
CoreFoundation
__CFRunLoopRun + 1568
4
CoreFoundation
CFRunLoopRunSpecific + 552
5
CoreFoundation
_legacyStreamRunLoop_workThread + 268
6
libsystem_pthread.dylib
_pthread_body + 272
7
libsystem_pthread.dylib
_pthread_body + 290
8
libsystem_pthread.dylib
thread_start + 4
com.google.fira.worker
keyboard_arrow_up
0
libsystem_kernel.dylib
fsync + 8
1
libsqlite3.dylib
sqlite3_free_table + 59012
2
libsqlite3.dylib
sqlite3_randomness + 2620
3
libsqlite3.dylib
sqlite3_free_table + 56776
4
libsqlite3.dylib
sqlite3_value_text + 22032
5
libsqlite3.dylib
sqlite3_finalize + 4128
6
libsqlite3.dylib
sqlite3_step + 57524
7
libsqlite3.dylib
sqlite3_step + 3096
8
libsqlite3.dylib
sqlite3_exec + 520
9
Knit and Crochet Counter
-[FIRASqliteStore endTransaction] + 4308285632
10
Knit and Crochet Counter
-[FIRASqliteStore performTransaction:] + 4308284800
11
Knit and Crochet Counter
-[FIRAMeasurement writeEventOnWorkerQueue:] + 4308408324
12
Knit and Crochet Counter
-[FIRAMeasurement handleEventOnWorkerQueue:] + 4308406816
13
Knit and Crochet Counter
__52-[FIRAScheduler scheduleOnWorkerQueueBlockID:block:]_block_invoke + 4308483696
14
libdispatch.dylib
_dispatch_call_block_and_release + 24
15
libdispatch.dylib
_dispatch_client_callout + 16
16
libdispatch.dylib
_dispatch_queue_serial_drain$VARIANT$mp + 608
17
libdispatch.dylib
_dispatch_queue_invoke$VARIANT$mp + 336
18
libdispatch.dylib
_dispatch_root_queue_drain_deferred_wlh$VARIANT$mp + 340
19
libdispatch.dylib
_dispatch_workloop_worker_thread$VARIANT$mp + 668
20
libsystem_pthread.dylib
_pthread_wqthread + 860
21
libsystem_pthread.dylib
start_wqthread + 4
Thread #1
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
com.apple.uikit.eventfetch-thread
keyboard_arrow_up
0
libsystem_kernel.dylib
mach_msg_trap + 8
1
libsystem_kernel.dylib
mach_msg + 72
2
CoreFoundation
__CFRunLoopServiceMachPort + 196
3
CoreFoundation
__CFRunLoopRun + 1568
4
CoreFoundation
CFRunLoopRunSpecific + 552
5
Foundation
-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6
Foundation
-[NSRunLoop(NSRunLoop) runUntilDate:] + 84
7
UIKit
-[UIEventFetcher threadMain] + 136
8
Foundation
__NSThread__start__ + 1040
9
libsystem_pthread.dylib
_pthread_body + 272
10
libsystem_pthread.dylib
_pthread_body + 290
11
libsystem_pthread.dylib
thread_start + 4
Thread #2
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #3
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #4
keyboard_arrow_up
0
libsystem_kernel.dylib
__psynch_cvwait + 8
1
libsystem_pthread.dylib
_pthread_cond_wait$VARIANT$mp + 644
2
libc++.1.dylib
std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 96
3
JavaScriptCore
std::__1::cv_status std::__1::condition_variable::wait_until<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&) + 124
4
JavaScriptCore
std::__1::cv_status std::__1::condition_variable_any::wait_until<std::__1::unique_lock<bmalloc::Mutex>, std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lock<bmalloc::Mutex>&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&) + 112
5
JavaScriptCore
bmalloc::Scavenger::threadRunLoop() + 272
6
JavaScriptCore
bmalloc::Scavenger::Scavenger(std::__1::lock_guard<bmalloc::StaticMutex>&) + 10
7
JavaScriptCore
void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*) + 44
8
libsystem_pthread.dylib
_pthread_body + 272
9
libsystem_pthread.dylib
_pthread_body + 290
10
libsystem_pthread.dylib
thread_start + 4
WebThread
keyboard_arrow_up
0
libsystem_kernel.dylib
mach_msg_trap + 8
1
libsystem_kernel.dylib
mach_msg + 72
2
CoreFoundation
__CFRunLoopServiceMachPort + 196
3
CoreFoundation
__CFRunLoopRun + 1568
4
CoreFoundation
CFRunLoopRunSpecific + 552
5
WebCore
RunWebThread(void*) + 592
6
libsystem_pthread.dylib
_pthread_body + 272
7
libsystem_pthread.dylib
_pthread_body + 290
8
libsystem_pthread.dylib
thread_start + 4
com.twitter.crashlytics.ios.MachExceptionServer
keyboard_arrow_up
0
libsystem_kernel.dylib
mach_msg_trap + 8
1
libsystem_kernel.dylib
mach_msg + 72
2
Knit and Crochet Counter
CLSMachExceptionServer + 4307924400
3
libsystem_pthread.dylib
_pthread_body + 272
4
libsystem_pthread.dylib
_pthread_body + 290
5
libsystem_pthread.dylib
thread_start + 4
Thread #5
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
com.apple.NSURLConnectionLoader
keyboard_arrow_up
0
libsystem_kernel.dylib
mach_msg_trap + 8
1
libsystem_kernel.dylib
mach_msg + 72
2
CoreFoundation
__CFRunLoopServiceMachPort + 196
3
CoreFoundation
__CFRunLoopRun + 1568
4
CoreFoundation
CFRunLoopRunSpecific + 552
5
CFNetwork
-[__CoreSchedulingSetRunnable runForever] + 220
6
Foundation
__NSThread__start__ + 1040
7
libsystem_pthread.dylib
_pthread_body + 272
8
libsystem_pthread.dylib
_pthread_body + 290
9
libsystem_pthread.dylib
thread_start + 4
Thread #6
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
AVAudioSession Notify Thread
keyboard_arrow_up
0
libsystem_kernel.dylib
mach_msg_trap + 8
1
libsystem_kernel.dylib
mach_msg + 72
2
CoreFoundation
__CFRunLoopServiceMachPort + 196
3
CoreFoundation
__CFRunLoopRun + 1568
4
CoreFoundation
CFRunLoopRunSpecific + 552
5
AVFAudio
GenericRunLoopThread::Entry(void*) + 164
6
AVFAudio
CAPThread::Entry(CAPThread*) + 88
7
libsystem_pthread.dylib
_pthread_body + 272
8
libsystem_pthread.dylib
_pthread_body + 290
9
libsystem_pthread.dylib
thread_start + 4
Thread #7
keyboard_arrow_up
0
libsystem_pthread.dylib
start_wqthread + 122
Thread #8
keyboard_arrow_up
0
libsystem_kernel.dylib
semaphore_timedwait_trap + 8
1
libdispatch.dylib
_dispatch_sema4_timedwait$VARIANT$mp + 60
2
libdispatch.dylib
_dispatch_semaphore_wait_slow + 72
3
libdispatch.dylib
_dispatch_worker_thread + 256
4
libsystem_pthread.dylib
_pthread_body + 272
5
libsystem_pthread.dylib
_pthread_body + 290
6
libsystem_pthread.dylib
thread_start + 4
Thread #9
keyboard_arrow_up
0
libsystem_kernel.dylib
semaphore_timedwait_trap + 8
1
libdispatch.dylib
_dispatch_sema4_timedwait$VARIANT$mp + 60
2
libdispatch.dylib
_dispatch_semaphore_wait_slow + 72
3
libdispatch.dylib
_dispatch_worker_thread + 256
4
libsystem_pthread.dylib
_pthread_body + 272
5
libsystem_pthread.dylib
_pthread_body + 290
6
libsystem_pthread.dylib
thread_start + 4
Thread #10
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #11
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #12
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
WebCore: LocalStorage
keyboard_arrow_up
0
libsystem_kernel.dylib
__psynch_cvwait + 8
1
libsystem_pthread.dylib
_pthread_cond_wait$VARIANT$mp + 644
2
JavaScriptCore
WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 80
3
JavaScriptCore
WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 2252
4
WebKitLegacy
bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 184
5
WebKitLegacy
std::__1::unique_ptr<WTF::Function<void ()>, std::__1::default_delete<WTF::Function<void ()> > > WTF::MessageQueue<WTF::Function<void ()> >::waitForMessageFilteredWithTimeout<WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)>(WTF::MessageQueueWaitResult&, WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)&&, WTF::WallTime) + 156
6
WebKitLegacy
WebCore::StorageThread::threadEntryPoint() + 68
7
JavaScriptCore
WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 224
8
JavaScriptCore
WTF::wtfThreadEntryPoint(void*) + 12
9
libsystem_pthread.dylib
_pthread_body + 272
10
libsystem_pthread.dylib
_pthread_body + 290
11
libsystem_pthread.dylib
thread_start + 4
Thread #13
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #14
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #15
keyboard_arrow_up
0
libsystem_pthread.dylib
start_wqthread + 122
Thread #16
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #17
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #18
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #19
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 1420
2
libsystem_pthread.dylib
start_wqthread + 4
com.apple.main-thread
keyboard_arrow_up
0
libsystem_kernel.dylib
mach_msg_trap + 8
1
libsystem_kernel.dylib
mach_msg + 72
2
CoreFoundation
__CFRunLoopServiceMachPort + 196
3
CoreFoundation
__CFRunLoopRun + 1568
4
CoreFoundation
CFRunLoopRunSpecific + 552
5
GraphicsServices
GSEventRunModal + 100
6
UIKit
UIApplicationMain + 236
7
Knit and Crochet Counter
AppDelegate.swift - Line 15
main
8
libdyld.dylib
start + 4
Thread #20
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
Thread #21
keyboard_arrow_up
0
libsystem_kernel.dylib
__workq_kernreturn + 8
1
libsystem_pthread.dylib
_pthread_wqthread + 928
2
libsystem_pthread.dylib
start_wqthread + 4
WTF::AutomaticThread
keyboard_arrow_up
0
libsystem_kernel.dylib
__psynch_cvwait + 8
1
libsystem_pthread.dylib
_pthread_cond_wait$VARIANT$mp + 644
2
JavaScriptCore
WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 148
3
JavaScriptCore
WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 2252
4
JavaScriptCore
bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 184
5
JavaScriptCore
WTF::Function<void ()>::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0>::call() + 212
6
JavaScriptCore
WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 224
7
JavaScriptCore
WTF::wtfThreadEntryPoint(void*) + 12
8
libsystem_pthread.dylib
_pthread_body + 272
9
libsystem_pthread.dylib
_pthread_body + 290
10
libsystem_pthread.dylib
thread_start + 4
Thread #22
keyboard_arrow_up
0
libsystem_kernel.dylib
semaphore_timedwait_trap + 8
1
libdispatch.dylib
_dispatch_sema4_timedwait$VARIANT$mp + 60
2
libdispatch.dylib
_dispatch_semaphore_wait_slow + 72
3
libdispatch.dylib
_dispatch_worker_thread + 256
4
libsystem_pthread.dylib
_pthread_body + 272
5
libsystem_pthread.dylib
_pthread_body + 290
6
libsystem_pthread.dylib
thread_start + 4
com.apple.avfoundation.avassetresourceloader.handler
keyboard_arrow_up
0
libsystem_kernel.dylib
semaphore_wait_trap + 8
1
libdispatch.dylib
_dispatch_sema4_wait$VARIANT$mp + 24
2
libdispatch.dylib
_dispatch_semaphore_wait_slow + 136
3
AVFoundation
-[AVAssetResourceLoader _handleRequest:requestID:willHandleRequest:] + 348
4
AVFoundation
customURLHandlerHandleRequestCallback + 136
5
libdispatch.dylib
_dispatch_client_callout + 16
6
libdispatch.dylib
_dispatch_queue_barrier_sync_invoke_and_complete + 56
7
CoreMedia
curlh_handleRequestDispatch + 148
8
libdispatch.dylib
_dispatch_client_callout + 16
9
libdispatch.dylib
_dispatch_queue_barrier_sync_invoke_and_complete + 56
10
CoreMedia
curlh_handleRequest + 128
11
CoreMedia
figCustomURLHandlerServer_handleRemoteMessage + 520
12
CoreMedia
__figXPC_HandleNewClientConnection_block_invoke + 536
13
libxpc.dylib
_xpc_connection_call_event_handler + 68
14
libxpc.dylib
_xpc_connection_mach_event + 984
15
libdispatch.dylib
_dispatch_client_callout4 + 16
16
libdispatch.dylib
_dispatch_mach_msg_invoke$VARIANT$mp + 352
17
libdispatch.dylib
_dispatch_queue_serial_drain$VARIANT$mp + 280
18
libdispatch.dylib
_dispatch_mach_invoke$VARIANT$mp + 508
19
libdispatch.dylib
_dispatch_queue_serial_drain$VARIANT$mp + 280
20
libdispatch.dylib
_dispatch_queue_invoke$VARIANT$mp + 336
21
libdispatch.dylib
_dispatch_root_queue_drain + 588
22
libdispatch.dylib
_dispatch_worker_thread + 188
23
libsystem_pthread.dylib
_pthread_body + 272
24
libsystem_pthread.dylib
_pthread_body + 290
25
libsystem_pthread.dylib
thread_start + 4
WTF::AutomaticThread
keyboard_arrow_up
0
libsystem_kernel.dylib
__psynch_cvwait + 8
1
libsystem_pthread.dylib
_pthread_cond_wait$VARIANT$mp + 644
2
JavaScriptCore
WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 148
3
JavaScriptCore
WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 2252
4
JavaScriptCore
bool WTF::Condition::waitUntil<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 184
5
JavaScriptCore
WTF::Function<void ()>::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0>::call() + 212
6
JavaScriptCore
WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 224
7
JavaScriptCore
WTF::wtfThreadEntryPoint(void*) + 12
8
libsystem_pthread.dylib
_pthread_body + 272
9
libsystem_pthread.dylib
_pthread_body + 290
10
libsystem_pthread.dylib
thread_start + 4

mobileadssdk-a...@google.com

unread,
May 1, 2018, 3:49:43 PM5/1/18
to Marc, Google Mobile Ads SDK Developers
Hi Marc,

Thanks for getting back to us. The offset for the GAD** symbol is pretty high for the Mobile Ads SDK to be considered the cause of this crash and more likely cause looks like AVAssetResourceLoader <AVFoundation> framework. However, to debug this further. can you send us code snippets of your implementation of the Mobile Ads SDK? We will then have a look into this.


Regards,
Deepika Uragayala
Mobile Ads SDK Team
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

Marc

unread,
May 1, 2018, 4:16:34 PM5/1/18
to mobileadssdk-a...@google.com, Google Mobile Ads SDK Developers
Thanks for getting back to us. The offset for the GAD** symbol is pretty high for the Mobile Ads SDK to be considered the cause of this crash and more likely cause looks like AVAssetResourceLoader <AVFoundation> framework. However, to debug this further. can you send us code snippets of your implementation of the Mobile Ads SDK? We will then have a look into this.

 Here are the ad-related methods in my primary class. I hope these help!

override func viewDidLoad() {
super.viewDidLoad()

adRequest.testDevices = [kGADSimulatorID]

CounterContainerViewController.mainController = self

initializeAdBanner()
loadAdBannerIntoView()

Ravelry.sharedInstance.startup()

_ = CounterList.sharedInstance
_ = iCloudUserDefaults.sharedInstance

if iCloud.available {
iCloudUserDefaults.sharedInstance.startObservingiCloud()
}

adjustContainerBottom()
}

fileprivate func initializeAdBanner() {
adBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)

adBannerView.adUnitID = DEFAULT_AD_UNIT

adBannerView.isHidden = true
adBannerView.delegate = self
adBannerView.translatesAutoresizingMaskIntoConstraints = false
adBannerView.rootViewController = self

loadAds()
}

fileprivate func loadAds() {
if !adBannerLoading && !adBannerLoaded {
adBannerLoading = true
adBannerLoaded = false

adBannerView.isAutoloadEnabled = true
self.adBannerView.load(adRequest)
}
}

fileprivate func loadAdBannerIntoView() {
adBannerHolderView.addSubview(adBannerView)

NSLayoutConstraint(item: adBannerView, attribute: .top, relatedBy: .equal, toItem: adBannerHolderView, attribute: .top, multiplier: 1.0, constant: adBorder).isActive = true
NSLayoutConstraint(item: adBannerView, attribute: .left, relatedBy: .equal, toItem: adBannerHolderView, attribute: .left, multiplier: 1.0, constant: 0.0).isActive = true
NSLayoutConstraint(item: adBannerView, attribute: .right, relatedBy: .equal, toItem: adBannerHolderView, attribute: .right, multiplier: 1.0, constant: 0.0).isActive = true
}

private func shrinkAdBanner(_ duration: TimeInterval = 0.5) {
hideAd = true

adBannerView.isAutoloadEnabled = false
adBannerLoaded = false

UIView.animate(withDuration: duration) {
self.adBannerHeightConstraint.constant = 0.0
self.adBannerView.isHidden = true

self.adjustContainerBottom()

self.view.layoutIfNeeded()
}
}

private func restoreAdBanner(_ duration: TimeInterval = 0.5) {
hideAd = false

loadAds()

UIView.animate(withDuration: duration) {
self.adBannerHeightConstraint.constant = self.adBannerView.frame.height + self.adBorder
self.adBannerView.isHidden = false

self.adjustContainerBottom()

self.view.layoutIfNeeded()
}
}

@objc fileprivate func adVisibilityChanged(_ notification: Notification) {
DispatchQueue.main.async {
if Settings.sharedInstance.adBannersAreDisabled {
self.shrinkAdBanner()
} else {
self.restoreAdBanner()
}
}
}

mobileadssdk-a...@google.com

unread,
May 2, 2018, 1:06:01 PM5/2/18
to Marc, Google Mobile Ads SDK Developers
Hi Marc,

I don't see any issue with your integration and even crash logs point to NSRangeException and/or AVFoundation error and this might not be related to the Mobile Ads SDK. The GAD** symbols would have been simply present in the memory when the crash occurred since the offset if pretty huge for them to be involved. It looks like an array out of bounds exception only.


Regards,
Deepika Uragayala
Mobile Ads SDK Team
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

kaan esin

unread,
May 11, 2018, 3:04:19 AM5/11/18
to Google Mobile Ads SDK Developers
Hi,

In my ios application, this crash has occured also. Actually it should be related to GAD Mobile ADs SDK, because this crash didnt occured on the first version of my application (there is no GAD library on the first version). 

You can see the crash details with this link: http://crashes.to/s/5f40366342d 

I am using native and interstitial ads on my app with some ad unit ids. This crash looks like to be occured maybe when there is a video banner on native ad cells. I cant create the case with simulator or a device because we cant change the ad units to show a video banner on the table list or on the interstitial banners. That is why I cant write to you the steps to reproduce the issue.

I am using 7.30.0 version of the Google-Mobile-Ads-SDK and the crash is occured on iPhone 5s 11.3.0 

You can download the application from the store: https://itunes.apple.com/us/app/translate-assistant/id1348751689?mt=8

I would love to get you the codes but they are not allowed to share for now, may be in the future I can get permission and share with you. But actually the concept of them is the same with Marc's codes.

Thanks Deepika,
Kaan Esin 

2 Mayıs 2018 Çarşamba 20:06:01 UTC+3 tarihinde mobileadssdk-a...@google.com yazdı:

mobileadssdk-a...@google.com

unread,
May 11, 2018, 3:07:34 PM5/11/18
to kaan esin, Google Mobile Ads SDK Developers
Hi there,

Can you provide us code snippets of your implementation? Or are you able to reproduce this crash via our sample apps? If you can provide us steps on how to reproduce this locally, it would help us debug this issue further. 


Regards,
Deepika Uragayala
Mobile Ads SDK Team
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

kaan esin

unread,
May 16, 2018, 2:25:37 AM5/16/18
to Google Mobile Ads SDK Developers
Hi,

I cant fully give you the ad showing codes but I can share some code snippets for it.

//After fethcing table view elements on viewDidLoad method, I load GADAdLoader requests and hold them in an array

GADAdLoader *adLoaderForAdmob = [[GADAdLoader alloc] initWithAdUnitID:adUnitId


                                                                                   rootViewController:self


                                                                                              adTypes:@[


                                                                                                        kGADAdLoaderAdTypeUnifiedNative,


                                                                                                        ]


                                                                                              options:@[multipleAdsOptions]];


                                adLoaderForAdmob.delegate = self;


                                GADRequest *request = [GADRequest request];


                                request.testDevices = @[kGADSimulatorID];


                                [adLoaderForAdmob loadRequest:request];


 NSMutableDictionary *adLoaderDict = [NSMutableDictionary dictionaryWithObjects:@[adLoaderForAdmob, Key_Admob]

                                                                                                      forKeys:@[@"adLoader", @"cellType"]];



                                [tempArray addObject:[adLoaderDict mutableCopy]];


if admob ad loads successfully,


- (void)adLoader:(GADAdLoader *)adLoader didReceiveUnifiedNativeAd:(GADUnifiedNativeAd *)nativeAd {

            if (nativeAd) {


                for (NSInteger i=0; i<self.translationHistory.count; i++) {


                    NSMutableDictionary *adLoaderDict = self.translationHistory[i];


                    if ([adLoaderDict objectForKey:@"adLoader"]


                        && [((GADAdLoader*)[adLoaderDict objectForKey:@"adLoader"]).adUnitID isEqualToString:adLoader.adUnitID]


                        && [[adLoaderDict objectForKey:@"adLoader"] isEqual:adLoader]) {


                        [adLoaderDict setObject:nativeAd forKey:@"nativeAd"];


...// replace the object at index i with adLoaderDict on my array

                   }


                }


               }


                [self.tableViewForHistory reloadData];




then 
//then on cellForRowAtIndexPath method, get GADUnifiedNativeAd classes and show them

GADUnifiedNativeAd *nativeAd = (GADUnifiedNativeAd*)[tempDict objectForKey:@"nativeAd"];


            if (nativeAd) {


                cell.nativeAdView.hidden = NO;

               cell.nativeAdView.nativeAd = nativeAd;

               

               ((UILabel*)cell.nativeAdView.headlineView).text = nativeAd.headline ? nativeAd.headline : @"";


                ((UILabel*)cell.nativeAdView.bodyView).text = nativeAd.body ? nativeAd.body : @"";


                [((UIButton*)cell.nativeAdView.callToActionView) setTitle:(nativeAd.callToAction ? nativeAd.callToAction : @"") forState:UIControlStateNormal];


                ((UIButton*)cell.nativeAdView.callToActionView).userInteractionEnabled = NO;


...

               


It is very standart ad showing code actually. I cant reproduce the issue as I said before, it may happens on production-appstore platform. There are also different crashes that comes from GAD classes also.


Thanks 


11 Mayıs 2018 Cuma 22:07:34 UTC+3 tarihinde mobileadssdk-a...@google.com yazdı:

mobileadssdk-a...@google.com

unread,
May 16, 2018, 1:26:07 PM5/16/18
to kaan esin, Google Mobile Ads SDK Developers
Hi Kaan,

Thank you for all of the details. I have shared this with the team. We will keep you posted as soon as I have any new information.


Regards,
Deepika Uragayala
Mobile Ads SDK Team
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+ page:
    http://googleadsdeveloper.blogspot.com
    https://plus.google.com/115658573333388777174/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

kaan esin

unread,
May 17, 2018, 6:05:05 AM5/17/18
to mobileadssdk-a...@google.com, Google Mobile Ads SDK Developers
Thanks a lot, we will wait for any replies from you.

--
Kaan Esin
iOS Developer
Reply all
Reply to author
Forward
0 new messages