How to initialize a CLLocationCoordinate2D struct [duplicate] - ios

This question already has answers here:
CLLocationCoordinate2D can't be instantiated
(2 answers)
Closed 1 year ago.
I'm trying to initialize a CLLocationCoordinate2D from a Swift Playground, and I'm getting the error:
error: Execution was interrupted, reason: signal SIGABRT.
The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.
Not sure what I'm doing wrong. Here is what I tried:
var temporaryCoordinate = CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0)

You have found a very unusual and interesting bug. I can reproduce your problem by running the following code in a Blank iOS playground:
import UIKit
import CoreLocation
var temporaryCoordinate = CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0)
What is going wrong is that the runtime environment, the Playground, is itself crashing. In the Mac, in the Console app, with Crash Reports left tab, we can see that the Xcode Playground is crashing.
Process: scratch-playground [1696]
Path: /Users/USER/Library/Developer/XCPGDevices/D22341D9-BFF3-4575-9801-1405F0AA2EA2/data/Containers/Bundle/Application/67A50F6D-18E8-4220-A2EB-8673018601AA/scratch-playground-1381-1.app/scratch-playground
Identifier: scratch-playground
Version: 1.0 (1)
Code Type: ARM-64 (Native)
Parent Process: ??? [1697]
Responsible: SimulatorTrampoline [635]
User ID: 501
Date/Time: 2021-04-06 21:43:05.608 +0100
OS Version: macOS 11.2.3 (20D91)
Report Version: 12
Anonymous UUID: BFEAE183-A757-B843-D9D2-BF254A4665C2
Time Awake Since Boot: 6300 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
External Modification Warnings:
Debugger attached to process.
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSValue valueWithMKCoordinate:]: unrecognized selector sent to class 0x1c9d3f588'
terminating with uncaught exception of type NSException
abort() called
CoreSimulator 732.18.6 - Device: iPad Pro (9.7-inch) (D22341D9-BFF3-4575-9801-1405F0AA2EA2) - Runtime: iOS 14.4 (18D46) - DeviceType: iPad Pro (9.7-inch)
Application Specific Backtrace 1:
0 CoreFoundation 0x00000001803f61fc __exceptionPreprocess + 236
1 libobjc.A.dylib 0x000000018016a438 objc_exception_throw + 56
2 CoreFoundation 0x00000001804053bc __CFExceptionProem + 0
3 CoreFoundation 0x00000001803fa45c ___forwarding___ + 1408
4 CoreFoundation 0x00000001803fc42c _CF_forwarding_prep_0 + 92
5 libswiftCoreLocation.dylib 0x00000001b1f98044 $s12CoreLocation39CLLocationCoordinate2DInNSValueObjCType33_25AD2332B1DC67E23B54508C4A7DAD45LLSPys4Int8VGvpfiAFyXEfU_ + 104
6 libswiftCoreLocation.dylib 0x00000001b1f97fcc globalinit_33_25AD2332B1DC67E23B54508C4A7DAD45_func0 + 12
7 libdispatch.dylib 0x0000000180100c48 _dispatch_client_callout + 16
8 libdispatch.dylib 0x0000000180102300 _dispatch_once_callout + 28
9 libswiftCore.dylib 0x000000018eed4ee8 swift_once + 44
10 libswiftCoreLocation.dylib 0x00000001b1f9817c $sSo22CLLocationCoordinate2DVs21_ObjectiveCBridgeable12CoreLocationsACP09_bridgeToC1C01_C5CTypeQzyFTW + 116
11 libswiftCore.dylib 0x000000018eeac510 _ZL37bridgeAnythingNonVerbatimToObjectiveCPN5swift11OpaqueValueEPKNS_14TargetMetadataINS_9InProcessEEEb + 360
12 libswiftCore.dylib 0x000000018ec10d70 $ss27_bridgeAnythingToObjectiveCyyXlxlF + 184
13 PlaygroundLogger 0x0000000100c6f9f8 globalinit_33_86996C1BC443F28F24E6A34F24210E4B_func8 + 2132
14 PlaygroundLogger 0x0000000100c6c848 globalinit_33_B1F54B50FE3698781248948D54A93147_func6 + 520
15 PlaygroundLogger 0x0000000100c6db44 playground_log_hidden + 276
16 ??? 0x0000000100c34350 0x0 + 4307764048
17 scratch-playground 0x0000000100ac2ea4 main + 0
18 CoreFoundation 0x0000000180365254 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20
19 CoreFoundation 0x00000001803644ec __CFRunLoopDoBlocks + 404
20 CoreFoundation 0x000000018035eda8 __CFRunLoopRun + 780
21 CoreFoundation 0x000000018035e58c CFRunLoopRunSpecific + 572
22 GraphicsServices 0x000000018b9c2740 GSEventRunModal + 160
23 UIKitCore 0x00000001843ccbf0 -[UIApplication _run] + 964
24 UIKitCore 0x00000001843d19d0 UIApplicationMain + 112
25 scratch-playground 0x0000000100ac2f7c main + 216
26 libdyld.dylib 0x0000000180223cbc start + 4
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00000001bd7c3c10 __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001bd7fc034 pthread_kill + 260
2 libsystem_c.dylib 0x00000001800f378c abort + 100
3 libc++abi.dylib 0x000000018021cf20 abort_message + 128
4 libc++abi.dylib 0x000000018020ef1c demangling_terminate_handler() + 296
5 libobjc.A.dylib 0x000000018016a6e8 _objc_terminate() + 124
6 libc++abi.dylib 0x000000018021c3c0 std::__terminate(void (*)()) + 16
7 libc++abi.dylib 0x000000018021c358 std::terminate() + 44
8 libdispatch.dylib 0x0000000180100c5c _dispatch_client_callout + 36
9 libdispatch.dylib 0x0000000180102300 _dispatch_once_callout + 28
10 libswiftCore.dylib 0x000000018eed4ee8 swift_once + 44
11 libswiftCoreLocation.dylib 0x00000001b1f9817c protocol witness for _ObjectiveCBridgeable._bridgeToObjectiveC() in conformance CLLocationCoordinate2D + 116
12 libswiftCore.dylib 0x000000018eeac510 bridgeAnythingNonVerbatimToObjectiveC(swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*, bool) + 360
13 libswiftCore.dylib 0x000000018ec10d70 _bridgeAnythingToObjectiveC<A>(_:) + 184
14 com.apple.dt.PlaygroundLogger 0x0000000100c6f9f8 0x100c68000 + 31224
15 com.apple.dt.PlaygroundLogger 0x0000000100c6c848 0x100c68000 + 18504
16 com.apple.dt.PlaygroundLogger 0x0000000100c6db44 playground_log_hidden + 276
17 ??? 0x0000000100c34350 0 + 4307764048
18 com.apple.dt.playground.stub.iOS_Simulator.scratch-playground-10BCB7AC-7E28-4D75-BC98-3FA7A44E2F36 0x0000000100ac2ea4 linkResources + 328
19 com.apple.CoreFoundation 0x0000000180365254 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20
20 com.apple.CoreFoundation 0x00000001803644ec __CFRunLoopDoBlocks + 404
21 com.apple.CoreFoundation 0x000000018035eda8 __CFRunLoopRun + 780
22 com.apple.CoreFoundation 0x000000018035e58c CFRunLoopRunSpecific + 572
23 com.apple.GraphicsServices 0x000000018b9c2740 GSEventRunModal + 160
24 com.apple.UIKitCore 0x00000001843ccbf0 -[UIApplication _run] + 964
25 com.apple.UIKitCore 0x00000001843d19d0 UIApplicationMain + 112
26 com.apple.dt.playground.stub.iOS_Simulator.scratch-playground-10BCB7AC-7E28-4D75-BC98-3FA7A44E2F36 0x0000000100ac2f7c main + 216
27 libdyld.dylib 0x0000000180223cbc start + 4
I think the problem is that there are two Core Location binaries in play:
0x18321e000 - 0x1832a8fff com.apple.corelocation (2420.12.16 - 2420.12.16) <F94D1F57-86D5-3A82-8F2B-80A9AEAC0308> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreLocation.framework/CoreLocation
and
0x1b1f96000 - 0x1b1f98fff +libswiftCoreLocation.dylib (5) <EE615605-C11D-3F60-B611-8B1C1D45FEEA> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift/libswiftCoreLocation.dylib
and the playground is communicating from one world to the other world; talking to the iOS simulator. But there is an incompatibility between the two as the message is not carried across correctly due to type confusion. This leads to the
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSValue
valueWithMKCoordinate:]: unrecognized selector sent to class
0x1c9d3f588' terminating with uncaught exception of type NSException
I think you should file a bug with Apple. To avoid the problem, write your code based on the iOS Simulator directly, instead of using the Playground. In such circumstances, your code will execute correctly (since it directly will run against the simulator without the intervening bridge from the Playground).

As Alexander says in his comment, there is nothing wrong with the code you posted. The cause of the crash is elsewhere.

Related

Expo standalone iOS build crashes on splash screen on Simulator and Testflight

I developed a marketplace app using Expo. It works fine on Expo Go both on Android and iOS, as well as a standalone app for Android. The problem is when I build a .tar for iOS simulator or when I upload to Testflight to test it. Then it crashes right after showing the splash screen. I use a managed workflow, and I think I followed all the instructions.
Here's the crash log:
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
*** Terminating app due to uncaught exception 'ExpoFatalError', reason: 'Expo encountered a fatal error: Unhandled JS Exception: Invariant Violation: Native module cannot be null.'
terminating with uncaught exception of type NSException
abort() called
CoreSimulator 757.5 - Device: iPhone 12 (0D59D0C0-2D3B-40ED-A8E2-DA0B1417C29C) - Runtime: iOS 14.5 (18E182) - DeviceType: iPhone 12
Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff20422fba __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007fff20193ff5 objc_exception_throw + 48
2 ComGrabbiGrabbiapp 0x000000010b375821 -[EXAppViewController maybeShowError:] + 506
3 ComGrabbiGrabbiapp 0x000000010b396dce handleFatalReactError_block_invoke_2 + 574
4 libdispatch.dylib 0x00007fff201078df _dispatch_client_callout + 8
5 libdispatch.dylib 0x00007fff201156ca _dispatch_async_and_wait_invoke + 109
6 libdispatch.dylib 0x00007fff201078df _dispatch_client_callout + 8
7 libdispatch.dylib 0x00007fff20114a27 _dispatch_main_queue_callback_4CF + 1045
8 CoreFoundation 0x00007fff203908f8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
9 CoreFoundation 0x00007fff2038b169 __CFRunLoopRun + 2781
10 CoreFoundation 0x00007fff2038a1a7 CFRunLoopRunSpecific + 567
11 GraphicsServices 0x00007fff2b874d85 GSEventRunModal + 139
12 UIKitCore 0x00007fff246c14df -[UIApplication _run] + 912
13 UIKitCore 0x00007fff246c639c UIApplicationMain + 101
14 ComGrabbiGrabbiapp 0x000000010b1461d0 main + 80
15 libdyld.dylib 0x00007fff2025abbd start + 1
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff60309946 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff60343615 pthread_kill + 263
2 libsystem_c.dylib 0x00007fff200fbd4f __abort + 139
3 libsystem_c.dylib 0x00007fff200fbcc4 abort + 135
4 libc++abi.dylib 0x00007fff20254692 abort_message + 241
5 libc++abi.dylib 0x00007fff20245dfd demangling_terminate_handler() + 266
6 libobjc.A.dylib 0x00007fff20179ace _objc_terminate() + 96
7 libc++abi.dylib 0x00007fff20253aa7 std::__terminate(void (*)()) + 8
8 libc++abi.dylib 0x00007fff20253a49 std::terminate() + 41
9 libdispatch.dylib 0x00007fff201078f3 _dispatch_client_callout + 28
10 libdispatch.dylib 0x00007fff201156ca _dispatch_async_and_wait_invoke + 109
11 libdispatch.dylib 0x00007fff201078df _dispatch_client_callout + 8
12 libdispatch.dylib 0x00007fff20114a27 _dispatch_main_queue_callback_4CF + 1045
13 com.apple.CoreFoundation 0x00007fff203908f8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
14 com.apple.CoreFoundation 0x00007fff2038b169 __CFRunLoopRun + 2781
15 com.apple.CoreFoundation 0x00007fff2038a1a7 CFRunLoopRunSpecific + 567
16 com.apple.GraphicsServices 0x00007fff2b874d85 GSEventRunModal + 139
17 com.apple.UIKitCore 0x00007fff246c14df -[UIApplication _run] + 912
18 com.apple.UIKitCore 0x00007fff246c639c UIApplicationMain + 101
19 com.grabbi.grabbiapp 0x000000010b1461d0 main + 80
20 libdyld.dylib 0x00007fff2025abbd start + 1
Okay after a weekend of debugging I fixed it. I had my main app component (in Expo) wrapped in a Stripe Provider component. Since I wasn't using Stripe but Paypal for checkout, I deleted the Stripe wrapper and now it works.
if(fontsLoaded){
return (
<StripeProvider
publishableKey="xxxxxxxxxxxxxxxxx"
urlScheme="your-url-scheme" // required for 3D Secure and bank redirects
merchantIdentifier="merchant.com.{{YOUR_APP_NAME}}" // required for Apple Pay
>
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<RootRouter />
</PersistGate>
</Provider>
</StripeProvider>
);

Unable to edit storyboard in Xcode 12 after IBAgent NSInternalInconsistencyException: Failed to create work interval

I am unable to edit storyboard files in my xcode project.
I have tried cleaning my Derived Data and cleaning my project but it has had no effect.
In the IBAgent crash log I found this.
I get further errors in the designer "already shutdown" errors. I believe because of the IBAgent crash
Here is the crash log:
Process: IBAgent-iOS [81085]
Path: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBAgent-iOS
Identifier: IBAgent-iOS
Version: 12.0.1 (17125)
Code Type: X86-64 (Native)
Parent Process: launchd_sim [81011]
Responsible: SimulatorTrampoline [1320]
User ID: 501
Date/Time: 2020-10-07 12:38:24.736 -0400
OS Version: Mac OS X 10.15.6 (19G2021)
Report Version: 12
Anonymous UUID: B35CBFA6-5A9D-0F38-AAF9-43DECA2C829D
Time Awake Since Boot: 440000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to create work interval'
terminating with uncaught exception of type NSException
abort() called
CoreSimulator 732.17 - Device: iPhone Xʀ (4069A6FF-6A3D-4066-A9E5-2871B5CF6183) - Runtime: iOS 14.0 (18A372) - DeviceType: iPhone Xʀ
Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff2043a126 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007fff20177f78 objc_exception_throw + 48
2 UIKitCore 0x00007fff24a5fcb7 _UIQOSProcessingEnd + 0
3 UIKitCore 0x00007fff24a5faf9 _UIQOSProcessingBegin + 309
4 UIKitCore 0x00007fff2404fd51 -[_UISceneDisplayLink _displayLinkTick:] + 98
5 QuartzCore 0x00007fff278e732d _ZN2CA7Display11DisplayLink14dispatch_itemsEyyy + 755
6 QuartzCore 0x00007fff279cb99c _ZL22display_timer_callbackP12__CFMachPortPvlS1_ + 639
7 CoreFoundation 0x00007fff2037670c __CFMachPortPerform + 157
8 CoreFoundation 0x00007fff203a913d __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
9 CoreFoundation 0x00007fff203a84de __CFRunLoopDoSource1 + 614
10 CoreFoundation 0x00007fff203a29ba __CFRunLoopRun + 2353
11 CoreFoundation 0x00007fff203a1b9e CFRunLoopRunSpecific + 567
12 Foundation 0x00007fff20846e61 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 209
13 IBFoundation 0x000000010c137bf0 -[IBAbstractPlatformTool startServingReceiveChannel:] + 399
14 IBFoundation 0x000000010c137e56 -[IBAbstractPlatformTool startServingWriteDescriptor:readDescriptor:] + 111
15 IBFoundation 0x000000010c138b40 +[IBAbstractPlatformTool main] + 1237
16 IBAgent-iOS 0x000000010bba295f main + 34
17 libdyld.dylib 0x00007fff20257415 start + 1
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff5dca633a __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff5dcdbe60 pthread_kill + 430
2 libsystem_c.dylib 0x00007fff200fabd4 abort + 120
3 libc++abi.dylib 0x00007fff20250818 abort_message + 231
4 libc++abi.dylib 0x00007fff20241e7d demangling_terminate_handler() + 266
5 libobjc.A.dylib 0x00007fff201781d1 _objc_terminate() + 96
6 libc++abi.dylib 0x00007fff2024fc47 std::__terminate(void (*)()) + 8
7 libc++abi.dylib 0x00007fff202525b6 __cxa_rethrow + 99
8 libobjc.A.dylib 0x00007fff2017810c objc_exception_rethrow + 37
9 com.apple.CoreFoundation 0x00007fff203a1cc4 CFRunLoopRunSpecific + 861
10 com.apple.Foundation 0x00007fff20846e61 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 209
11 com.apple.dt.IBFoundation 0x000000010c137bf0 -[IBAbstractPlatformTool startServingReceiveChannel:] + 399
12 com.apple.dt.IBFoundation 0x000000010c137e56 -[IBAbstractPlatformTool startServingWriteDescriptor:readDescriptor:] + 111
13 com.apple.dt.IBFoundation 0x000000010c138b40 +[IBAbstractPlatformTool main] + 1237
14 IBAgent-iOS 0x000000010bba295f main + 34
15 libdyld.dylib 0x00007fff20257415 start + 1
This happened when I upgraded to Xcode 13.0.
I couldn't find much help on the subject, but from trial and error, the solution for my situation seemed to be:
open ~/Library/Developer/Xcode/iOS\ DeviceSupport
rm -rf <VERSION>
I did this for every version expect the latest version (in this case 15.0.2 (19A404))

Namespace SIGNAL, Code 0x5 with EXC_BREAKPOINT (SIGTRAP)

I am unable to reproduce the issue. One of my user sent the crash log and the issue seem to point to NSUserDefault setBool:forKey method.
Not working for user Device iPhone 6, iOS version: 12.4.4. For now only one user contacted due to the App crash.
Working on the devices I tested. (iPad Air 2, iPhone XS, iOS version 13.3)
This is the method I am using.
- (void) saveToDefaults:(NSString*)productId
{
[ [ NSUserDefaults standardUserDefaults ] setBool:YES forKey:productId ];
[ [ NSUserDefaults standardUserDefaults ] synchronize];
}
Crash dump
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000020eae32e4
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [15897]
Triggered by Thread: 0
Thread 0 name:
Thread 0 Crashed:
0 CoreFoundation 0x000000020eae32e4 CFHash + 372 (CFRuntime.c:1147)
1 CoreFoundation 0x000000020eb75a38 CFBasicHashFindBucket + 224 (CFBasicHash.c:465)
2 CoreFoundation 0x000000020eb75a38 CFBasicHashFindBucket + 224 (CFBasicHash.c:465)
3 CoreFoundation 0x000000020eaada40 CFDictionaryGetValue + 120 (CFDictionary.c:413)
4 CoreFoundation 0x000000020eaca938 -[CFPrefsSearchListSource alreadylocked_setPrecopiedValues:forKeys:count:from:] + 496 (CFPrefsSearchListSource.m:632)
5 CoreFoundation 0x000000020eb81230 -[CFPrefsSource setValues:forKeys:count:copyValues:removeValuesForKeys:count:from:] + 372 (CFPrefsSource.m:742)
6 CoreFoundation 0x000000020eb81524 -[CFPrefsSource setValues:forKeys:count:copyValues:from:] + 36 (CFPrefsSource.m:766)
7 CoreFoundation 0x000000020ea3e3dc -[CFPrefsSource setValue:forKey:from:] + 64 (CFPrefsSource.m:772)
8 CoreFoundation 0x000000020eaccc54 __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurat... + 272 (CFPrefsSearchListSource.m:1553)
9 CoreFoundation 0x000000020eacc698 normalizeQuintuplet + 340 (CFPrefsSearchListSource.m:63)
10 CoreFoundation 0x000000020ea3ad64 -[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationUR... + 108 (CFPrefsSearchListSource.m:1433)
11 CoreFoundation 0x000000020ea3dd7c -[_CFXPreferences setValue:forKey:appIdentifier:container:configurationURL:] + 92 (CFXPreferences.m:759)
12 CoreFoundation 0x000000020eb8b360 _CFPreferencesSetAppValueWithContainerAndConfiguration + 132 (CFXPreferences.m:1867)
13 Foundation 0x000000020f4eb3b8 -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 64 (NSUserDefaults.m:228)
14 MyApp 0x00000001004adb14 -[IAPHelper saveToDefaults:] + 88 (IAPHelper.m:206)
15 MyApp 0x00000001004adc3c -[IAPHelper restoreTransaction:] + 224 (IAPHelper.m:223)
16 MyApp 0x00000001004ad928 -[IAPHelper paymentQueue:updatedTransactions:] + 264 (IAPHelper.m:0)
17 libdispatch.dylib 0x000000020e58ca38 _dispatch_call_block_and_release + 24 (init.c:1372)
18 libdispatch.dylib 0x000000020e58d7d4 _dispatch_client_callout + 16 (object.m:511)
19 libdispatch.dylib 0x000000020e53b008 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068 (inline_internal.h:2441)
20 CoreFoundation 0x000000020eae0b20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1813)
21 CoreFoundation 0x000000020eadba58 __CFRunLoopRun + 1924 (CFRunLoop.c:3113)
22 CoreFoundation 0x000000020eadafb4 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3247)
23 GraphicsServices 0x0000000210cdc79c GSEventRunModal + 104 (GSEvent.c:2245)
24 UIKitCore 0x000000023b33cc38 UIApplicationMain + 212 (UIApplication.m:4353)
25 MyApp 0x00000001004e9cec main + 88 (main.m:14)
26 libdyld.dylib 0x000000020e59e8e0 start + 4
How can I handle this exception to avoid this problem in the future.
Following up comments discussion and this answer indicating synchronize is not required (as per Apple's iOS 12 release notes):
My target iOS is from 11.2, guess I cannot use it for now.
Yes you can.
Wrapping up my suggestion in comment :
if (#available(iOS 12, *)) {
// don't need to synchronize
} else {
[NSUserDefaults.standardUserDefaults synchronize];
}
The above code #available Swift-like syntax assumes you're using Xcode 9 or higher. Which given the targeted iOS is pretty much a must.
Just to make myself 100% clear I cannot guarantee this will solve this particular crash issue, but it is worth trying as a very low effort fix candidate.

What triggered this SIEGSEGV Exception type

The iOS app I am developing is having this crash with many of my users (I can catch it via PLCrashReporter library). The Exception type is SIGSEGV, so I believe is an error involving memory (like acceding a deallocated variable?).
But how can I discover what triggered it? The first line in the stacktrace involving my app is line 13:
13 ****** 0x004a9b40 _mh_execute_header +
And I really can't catch what this could mean.
Is there a way to see more info, or maybe the first four/five lines can help me more than I think?
Additional information: I use massively CoreData and NSManagedObjects, so I can't check every instance if those.
Build Version: 2.0
Incident Identifier: 5D8AECAD-3DC6-403D-8C8A-86FCC06C7FF0
Hardware Model: iPad3,3
Process: ****** [6112]
Path: /private/var/mobile/Containers/Bundle/Application/853B3A08-D893-45CA-B223-BD4A3B0241FF/******.app/******
Identifier: com.**.******
Version: 2
Code Type: ARM
Parent Process: launchd [1]
Date/Time: 2015-07-30 11:56:43 +0000
OS Version: iPhone OS 8.4 (12H143)
Report Version: 104
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0x7176d0c2
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x3408df66 objc_msgSend + 5
1 CoreData 0x25521bad -[NSManagedObject _clearRawPropertiesWithHint:] + 284
2 CoreData 0x25521a13 -[NSFaultHandler turnObject:intoFaultWithContext:] + 398
3 CoreData 0x2551f517 -[NSManagedObject dealloc] + 74
4 CoreData 0x2551ec25 -[_PFManagedObjectReferenceQueue _processReferenceQueue:] + 1768
5 CoreData 0x2551e4b3 <redacted> + 326
6 CoreFoundation 0x257d026d <redacted> + 20
7 CoreFoundation 0x257cd951 <redacted> + 276
8 CoreFoundation 0x257cdd53 <redacted> + 914
9 CoreFoundation 0x257199a1 CFRunLoopRunSpecific + 476
10 CoreFoundation 0x257197b3 CFRunLoopRunInMode + 106
11 GraphicsServices 0x2d0c11a9 GSEventRunModal + 136
12 UIKit 0x28eca635 UIApplicationMain + 1440
13 ****** 0x004a9b40 _mh_execute_header + 4156224
14 libdyld.dylib 0x3464faaf <redacted> + 2
[...]

iPhone crash log and how to understand it

This is one crash log I've downloaded from iTunesConnect website.
Incident Identifier: 20D5CB0F-58BE-41E5-B3F6-9BC8091E518C
Hardware Model: iPhone4,1
Process: iPill [2006]
Path: /var/mobile/Applications/4567191D-1013-40F3-A02A-0B3C2552FCD3/iPill.app/iPill
Identifier: iPill
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-07-12 20:59:23.716 +0200
OS Version: iPhone OS 5.1.1 (9B206)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x3558688f __exceptionPreprocess + 163
1 libobjc.A.dylib 0x3792d259 objc_exception_throw + 33
2 CoreFoundation 0x354cf9db -[__NSArrayM objectAtIndex:] + 271
3 iPill 0x0008225b -[ProssimeDosi tableView:cellForRowAtIndexPath:] (ProssimeDosi.m:314)
4 UIKit 0x3301aefb -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 547
5 UIKit 0x33019fd9 -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1077
6 UIKit 0x33019763 -[UITableView layoutSubviews] + 207
7 UIKit 0x32fbdf37 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 183
8 CoreFoundation 0x354e51fb -[NSObject performSelector:withObject:] + 43
9 QuartzCore 0x323b5aa5 -[CALayer layoutSublayers] + 217
10 QuartzCore 0x323b56bd CA::Layer::layout_if_needed(CA::Transaction*) + 217
11 QuartzCore 0x323b9843 CA::Context::commit_transaction(CA::Transaction*) + 227
12 QuartzCore 0x323b957f CA::Transaction::commit() + 315
13 QuartzCore 0x323b14b9 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 57
14 CoreFoundation 0x3555ab1b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 19
15 CoreFoundation 0x35558d57 __CFRunLoopDoObservers + 259
16 CoreFoundation 0x355590b1 __CFRunLoopRun + 761
17 CoreFoundation 0x354dc4a5 CFRunLoopRunSpecific + 301
18 CoreFoundation 0x354dc36d CFRunLoopRunInMode + 105
19 GraphicsServices 0x37178439 GSEventRunModal + 137
20 UIKit 0x32fe8cd5 UIApplicationMain + 1081
21 iPill 0x000799b7 main (main.m:16)
22 iPill 0x0007996c 0x78000 + 6508
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x35e3c32c __pthread_kill + 8
1 libsystem_c.dylib 0x32988208 pthread_kill + 48
2 libsystem_c.dylib 0x32981298 abort + 88
3 libc++abi.dylib 0x3593ef64 abort_message + 40
4 libc++abi.dylib 0x3593c346 _ZL17default_terminatev + 18
5 libobjc.A.dylib 0x3792d350 _objc_terminate + 140
6 libc++abi.dylib 0x3593c3be _ZL19safe_handler_callerPFvvE + 70
7 libc++abi.dylib 0x3593c44a std::terminate() + 14
8 libc++abi.dylib 0x3593d81e __cxa_rethrow + 82
9 libobjc.A.dylib 0x3792d2a2 objc_exception_rethrow + 6
10 CoreFoundation 0x354dc506 CFRunLoopRunSpecific + 398
11 CoreFoundation 0x354dc366 CFRunLoopRunInMode + 98
12 GraphicsServices 0x37178432 GSEventRunModal + 130
13 UIKit 0x32fe8cce UIApplicationMain + 1074
14 iPill 0x000799b0 main (main.m:16)
15 iPill 0x00079964 0x78000 + 6500
I've pasted only thread 0 because it seems it is the one which crashed.
This is all new to me and I have no idea how to interpret this log and solve the problem.
I've tested my App on my iPhones 4 and 4s and on a 3GS of a friend of mine and we didn't see any crash.
Now I'm getting 1 star reviews from some people saying iPill is crashing a lot.
Any help will be really appreciated.
Thanks.
I'd say to start in your tables cellForRowAtIndexpath method.
I'd hazard a guess that there's an issue with your data model and it's calling data from an array that is empty.
Just from this crashlog it looks as if you're having an out-of-bounds problem triggered by line 314 of ProssimeDosi.m due to something requesting more data than is available.
See the accepted answer here for a more elaborate explanation: Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSMutableArray objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

Resources