iOS 12-only Crash on -[GAIAnalyticsPropertiesStore upsertPropertyRecord:] - google-analytics

Unable to reproduce but getting lots of crashes reported via crashlytics.
See crash log below. If more info is needed please let me know...
Crashing only on devices running iOS 12.0/12.1
Using GoogleAnalytics 3.17.0 (latest)
Crash occurs at:
8 ----- 0x10148534c -[GAIAnalyticsPropertiesStore upsertPropertyRecord:] + 4383150924
Help and suggestions are greatly appreciated. Thanks!
Crashed: GAIThread
0 libsystem_platform.dylib 0x1bf912f3c
_os_unfair_lock_unowned_abort + 36
1 libsystem_platform.dylib 0x1bf914524
_os_unfair_lock_unlock_slow + 144
2 libsqlite3.dylib 0x1c017e18c sqlite3_randomness +
4368
3 libsqlite3.dylib 0x1c015d878 sqlite3_value_text +
26356
4 libsqlite3.dylib 0x1c015d250 sqlite3_value_text +
24780
5 libsqlite3.dylib 0x1c0128434 sqlite3_finalize + 3732
6 libsqlite3.dylib 0x1c01557d0 sqlite3_step + 66844
7 libsqlite3.dylib 0x1c0145464 sqlite3_step + 432
8 ----- 0x10148534c
-[GAIAnalyticsPropertiesStore upsertPropertyRecord:] + 4383150924
9 ----- 0x101484ddc
-[GAIAnalyticsPropertiesStore nextHitNumberForTrackingId:clientId:] + 4383149532
10 ----- 0x10147eb00 -[GAIBatchingDispatcher
queueDispatch:] + 4383124224
11 ----- 0x10147e91c -[GAIBatchingDispatcher
queueModel:] + 4383123740
12 Foundation 0x1c07bb5a0 __NSThreadPerformPerform
+ 336
13 CoreFoundation 0x1bfc9a5b8
CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 24
14 CoreFoundation 0x1bfc9a538 __CFRunLoopDoSource0 +
88
15 CoreFoundation 0x1bfc99e1c __CFRunLoopDoSources0 +
176
16 CoreFoundation 0x1bfc94ce8 __CFRunLoopRun + 1040
17 CoreFoundation 0x1bfc945b8 CFRunLoopRunSpecific +
436
18 Foundation 0x1c06886a4 -[NSRunLoop(NSRunLoop)
runMode:beforeDate:] + 300
19 Foundation 0x1c06c4094 -[NSRunLoop(NSRunLoop)
run] + 88
20 ----- 0x10146bf14 +[GAI threadMain:] +
4383047444
21 Foundation 0x1c07bb3b0 NSThread__start +
1040
22 libsystem_pthread.dylib 0x1bf9252fc _pthread_body + 128
23 libsystem_pthread.dylib 0x1bf92525c _pthread_start + 48
24 libsystem_pthread.dylib 0x1bf928d08 thread_start + 4
--
Update:
I made a couple of changes that seemed to have helped. The app is still crashing but less frequently. Also I added log statements to help pinpoint where and when it is crashing.
The change I made that seemed to help was increasing the value for dispatchInterval (previous set to 20)...
[GAI sharedInstance].dispatchInterval = 60;
Also, the crash only seems to occur when the app is launched and/or becomes active while trying to track an event in the app delegate method...
- (void)applicationDidBecomeActive:(UIApplication *)application {
...
GA_EVENT(#"App Launch", #"", #"App Launched", 0);
// NOTE: GA_EVENT defines a custom method that creates the event (GAIDictionaryBuilder)
// and invokes the GAITracker's send method with the event per usual.
// This approach is used throughout the app and was working fine prior
// to iOS 12, but is now causing a crash here for some reason
...
}
Lastly, in the event that this is a bug with GA SDK, I created an issue in their bug tracker. From my research, the last time this crash was reported it seemed to have required an update to their SDK. So, perhaps that's the case here as well. We'll see if I hear anything back from the Google gods...
https://issuetracker.google.com/issues/117476933

We have found the solution to this problem after spending sleepless days and nights. The issue was occurring because of the Apsalar SDK in our case. If you are using Apsalar SDK in your project, I highly recommend you to move from Apsalar to Singular SDK. Singular SDK covers all the functionality provided by Apsalar. So you need not worry about missing any functionality or changing a hell lot of code.
You can download the Singular SDK from the following link: https://support.singular.net/hc/en-us/articles/115000497903-Integrating-the-Singular-SDK

Related

Xamarin, Prism and IOS Webview Exception

It looks like this is something to do with Prism. We are using Xamarin 4.8 and Prism and in IOS and all I have done is dropped a
<webview></webview>
'
and I get this exception.
I thought make I needed to set the source but
that didn't change matters. I got to be missing something simple.
Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[NSCoder decodeObjectOfClasses:forKey:]: This method is only implemented for coders which allowKeyedCoding.
Native stack trace:
0 CoreFoundation 0x000000011ea2aaf6 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x000000011f2b8e78 objc_exception_throw + 48
2 Foundation 0x0000000118c74b8a -[NSCoder decodeObjectOfClasses:forKey:error:] + 0
3 WebKit 0x0000000117ca3bcb -[WKWebViewConfiguration initWithCoder:] + 87
4 S3.Core.Mobile.iOS 0x000000010cb32359 xamarin_dyn_objc_msgSend + 217
5 ??? 0x000000015c0b2a00 0x0 + 5839202816
We are using Xamarin 4.8 and Prism
I found that you are using the old version of Xamarin Forms, then you could upadte the version of Xamarin Forms to the latest version (5.0.0.1931) to check whether it works.

Running into DVTAssertions: ASSERTION FAILURE error with ios-sim

I'm trying get ionic up and running using my mac by following the simple instructions on the website (http://ionicframework.com/getting-started/)
Everything is working until i need to emulate
$ ionic emulate ios
I did a little deeper and I realized the same error lies in when I tried to run ios-sim
Here is what I see
$ ios-sim start
2015-02-27 14:01:57.361 ios-sim[1810:208272] [MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/DVTiOSFrameworks/DVTiOSFrameworks-6274/DVTiPhoneSimulatorRemoteClient/DTiPhoneSimulatorSessionConfig.m:143
Details: (runtime) should not be nil.
Object: <DTiPhoneSimulatorSystemRoot>
Method: +rootWithSimRuntime:
Thread: <NSThread: 0x7ff44a5105f0>{number = 1, name = main}
Hints: None
Backtrace:
0 0x0000000110abe24a -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
1 0x0000000110abdc9f _DVTAssertionHandler (in DVTFoundation)
2 0x0000000110abdf8e _DVTAssertionFailureHandler (in DVTFoundation)
3 0x0000000111062614 +[DTiPhoneSimulatorSystemRoot rootWithSimRuntime:] (in DVTiPhoneSimulatorRemoteClient)
4 0x0000000111061897 -[DTiPhoneSimulatorSessionConfig simulatedSystemRoot] (in DVTiPhoneSimulatorRemoteClient)
5 0x000000010ebadab0 -[iPhoneSimulator launchApp:withFamily:uuid:environment:stdoutPath:stderrPath:timeout:args:] (in ios-sim)
6 0x000000010ebaecfd -[iPhoneSimulator runWithArgc:argv:] (in ios-sim)
7 0x000000010ebaefbb main (in ios-sim)
8 0x000000010ebac37c start (in ios-sim)
9 0x0000000000000002
Abort trap: 6
Please advice

Does the new xcode crash due to running out of memory?

I recently often get this:
Process: Xcode [30248]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 4.5 (1839)
Build Info: IDEApplication-1839000000000000~3
App Item ID: 497799835
App External ID: 10747437
Code Type: X86-64 (Native)
Parent Process: launchd [140]
User ID: 501
Date/Time: 2012-10-09 10:32:37.454 +0700
OS Version: Mac OS X 10.8.2 (12C60)
Report Version: 10
Interval Since Last Report: 136816 sec
Crashes Since Last Report: 2
Per-App Interval Since Last Report: 134365 sec
Per-App Crashes Since Last Report: 1
Anonymous UUID: 1CBC3344-3A0F-4006-F51E-8FF9902D7CC5
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information:
ProductBuildVersion: 4G182
UNCAUGHT EXCEPTION (NSMallocException): Out of memory. We suggest restarting the application. If you have an unsaved document, create a backup copy in Finder, then try to save.
UserInfo: (null)
Hints: None
Backtrace:
0 0x00007fff93d7308e __exceptionPreprocess (in CoreFoundation)
1 0x00007fff96bd13f0 objc_exception_throw (in libobjc.A.dylib)
2 0x00007fff8b3ff914 ___NSInitializePlatform_block_invoke_0 (in Foundation)
3 0x00007fff93ce7fe0 __CFStringChangeSizeMultiple (in CoreFoundation)
4 0x00007fff93d0d722 CFStringReplaceAll (in CoreFoundation)
5 0x00007fff93d0bd55 _CFBundleTryOnePreferredLprojNameInDirectory (in CoreFoundation)
6 0x00007fff93d0b3a0 _CFBundleAddPreferredLprojNamesInDirectory (in CoreFoundation)
7 0x00007fff93d0ba7e _CFBundleGetLanguageSearchList (in CoreFoundation)
8 0x00007fff93dbcf99 _CFBundleCreateQueryTableAtPath (in CoreFoundation)
9 0x00007fff93db9817 _CFBundleCopyQueryTable (in CoreFoundation)
10 0x00007fff93dbdeb9 _CFBundleCopyURLsOfKey (in CoreFoundation)
11 0x00007fff93dbb3ad _CFBundleCopyFindResources (in CoreFoundation)
12 0x00007fff93d1b757 CFBundleCopyResourceURL (in CoreFoundation)
13 0x00007fff907b4165 MTUOpenResourceFile (in SpeechSynthesis)
14 0x00007fff907b40a7 MTUReadResourceDataFile (in SpeechSynthesis)
15 0x00007fff907b3c1f ReadVoiceDescriptionFileFromBundle(__CFBundle*, VoiceDescription*) (in SpeechSynthesis)
16 0x00007fff907b3a41 RegisterVoiceBundle(VoiceListRec**, SpeechEngine*, __CFBundle*, int) (in SpeechSynthesis)
17 0x00007fff907b392f RegisterVoices(int, SpeechEngine*, VoiceListRec**) (in SpeechSynthesis)
18 0x00007fff907b355f RebuildVoiceList(SpeechEngine*, VoiceListRec**) (in SpeechSynthesis)
19 0x00007fff907afd4d RebuildVoiceListIfNecessary() (in SpeechSynthesis)
20 0x00007fff907b01e6 NewSpeechChannel (in SpeechSynthesis)
21 0x00007fff907b9e99 StartSpeakingNow (in SpeechSynthesis)
22 0x00007fff93d2fda4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ (in CoreFoundation)
23 0x00007fff93d2f8bd __CFRunLoopDoTimer (in CoreFoundation)
24 0x00007fff93d15099 __CFRunLoopRun (in CoreFoundation)
25 0x00007fff93d146b2 CFRunLoopRunSpecific (in CoreFoundation)
26 0x00007fff924640a4 RunCurrentEventLoopInMode (in HIToolbox)
27 0x00007fff92463e42 ReceiveNextEventCommon (in HIToolbox)
28 0x00007fff92463cd3 BlockUntilNextEventMatchingListInMode (in HIToolbox)
29 0x00007fff94ea4613 _DPSNextEvent (in AppKit)
30 0x00007fff94ea3ed2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit)
31 0x00007fff94e9b283 -[NSApplication run] (in AppKit)
32 0x00007fff94e3fcb6 NSApplicationMain (in AppKit)
33 0x000000010080bd17 (in Xcode)
34 0x000000010080bca8 (in Xcode)
The amount of memory is abundant. 8GB and there are still plenty left. Not to mention virtual memory. I am not sure if I should ask this to superuser.
The xcode version is Version 4.5 (4G182)
Did I set things up incorrectly or is this just a bug in xcode 4.5?
Should this be asked at superuser.com instead (but most of the crowd there probably do not use xcode).
Quite often when I change tabs, xcode will slow down.

QStringList of quazip::getFileNameList casts error by destruction

in Qt Creator (qt 4.8, winxp) I wrote
QuaZip* zipfile = new QuaZip;
zipfile->setZipName("myzipfile.zip");
zipfile->open(QuaZip::mdUnzip);
if(zipfile->isOpen()){
QStringList files = zipfile->getFileNameList();
} // here the error occurs
when files is destroyed, a messagebox says
Debug Assertion Failed!
Expression: _CrtIsValidHeapPointer(pUserData)
In the debugger I have the following function stack:
0 DbgBreakPoint ntdll 0x7c90120e
1 RtlpBreakPointHeap ntdll 0x7c96c201
2 RtlpValidateHeapEntry ntdll 0x7c96c63e
3 RtlValidateHeap ntdll 0x7c9603b0
4 HeapValidate kernel32 0x7c85f8d7
5 _CrtIsValidHeapPointer dbgheap.c 2103 0x102d1ac9
6 _free_dbg_nolock dbgheap.c 1317 0x102d0b3a
7 _free_dbg dbgheap.c 1258 0x102d09e0
8 free dbgfree.c 49 0x102d8990
9 qFree qmalloc.cpp 60 0x5e2f1d
10 QString::free qstring.cpp 1235 0x65dd22
11 QString::~QString qstring.h 880 0x5ac0d3
12 QString::`scalar deleting destructor' QuizSet 0x4120e0
13 QList<QString>::node_destruct qlist.h 433 0x412180
14 QList<QString>::free qlist.h 759 0x4115fb
15 QList<QString>::~QList<QString> qlist.h 733 0x410967
16 QStringList::~QStringList MyApp 0x414d9f
17 MyApp::myFunction myapp.cpp 561 0x420e1c
...
line 433 in qlist.h is where the debugger stops:
while (from != to) --to, reinterpret_cast<T*>(to)->~T();
the error occurs only if I call ::getFileNameList(), if I fill the list manual it works fine.
Other operations with quazip work, I can unzip and zip data, only the getFileNameList makes trouble.
EDIT: I found the cause: the quazip1.dll I used was the release version of it, only in debug-running this problem arised. So if I use the debug quazip.dll, it works fine. Annoying they're called the same, so I have to rename everytime I switch from debug to release. Anybody knows a workaround to this?
This means that you are mixing release mode Qt DLLs with Debug ones. You have to create 2 sets of Quazip DLLs one for Release mode and one for Debug mode. You cannot mix Qt Debug DLLs with Release DLLs.

Percentage Reported By PHPUnit: What Does it Mean?

I'm working on my first project in which I'm utilizing PHPUnit for unit testing. Things have been moving along nicely; however, I've started getting the following output with recent tests:
................................................................. 65 / 76 ( 85%)
...........
Time: 1 second, Memory: 30.50Mb
OK (76 tests, 404 assertions)
I cannot find any information about what the "65 / 76 ( 85%)" means.
Does anyone know how to interpret this?
Thanks!
It means the amount of tests that have been run so far (test methods actually, or to be even more precise: test method calls, because each test method can be called several times).
65 / 76 ( 85%)
65 tests of 76 have already run (which is 85% overall)
And as long as you see dots for each of them - all of them passed
I didn't understand it until I kept writing more tests, here's a sample of what you see as the number of tests grow:
............................................................... 63 / 152 ( 41%)
............................................................... 126 / 152 ( 82%)
..........................
...it's just a progress indicator of the number of tests that have been run. But as you can see, it still gets to the end.

Resources