In-App purchase on iOS simulator causes .../usr/libexec/lsd to crash

5

While testing In-App purchases in the simulator I get the following crash:

Path:            /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/usr/libexec/lsd
Parent Process:  launchd [166]

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000030

VM Regions Near 0x975c08c:
    MALLOC_SMALL           0000000002000000-0000000004000000 [ 32.0M] rw-/rwx SM=PRV  
--> 
    __TEXT                 000000008fed8000-000000008ff0b000 [  204K] r-x/rwx SM=COW  /usr/lib/dyld

Application Specific Information:
objc_msgSend() selector name: release
iPhone Simulator 358.4, iPhone OS 6.0 (iPhone/10A403)



Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                 0x0073509b objc_msgSend + 15
1   CoreFoundation                  0x0098841c CFRelease + 108
2   MobileCoreServices              0x003f3fac _LSServer_CopyVendorIdentifier + 1320
3   MobileCoreServices              0x0040d912 _LSPluginServer_GetVendorIdentifierForAppIdentifier + 311
4   MobileCoreServices              0x004120bb _XGetVendorIdentifierForAppIdentifier + 238
5   MobileCoreServices              0x0041224d LSPlugin_server + 119
6   MobileCoreServices              0x0041e6e8 serverCallback + 154
7   CoreFoundation                  0x00981c93 __CFMachPortPerform + 131
8   CoreFoundation                  0x00981bf5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
9   CoreFoundation                  0x00981962 __CFRunLoopDoSource1 + 146
10  CoreFoundation                  0x009b2bb6 __CFRunLoopRun + 2118
11  CoreFoundation                  0x009b1f44 CFRunLoopRunSpecific + 276
12  CoreFoundation                  0x009bdf91 CFRunLoopRun + 129
13  MobileCoreServices              0x0041e638 _LSServerMain + 360
14  lsd                             0x00001aa6 0x1000 + 2726
15  lsd                             0x00001a41 0x1000 + 2625

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x96f2b926 kevent64 + 10
1   libdispatch.dylib               0x01102c2b _dispatch_mgr_invoke + 863
2   libdispatch.dylib               0x011028cc _dispatch_mgr_thread + 61

Thread 2:
0   libsystem_kernel.dylib          0x96f2b02e __workq_kernreturn + 10
1   libsystem_c.dylib               0x9ae3fccf _pthread_wqthread + 773
2   libsystem_c.dylib               0x9ae416fe start_wqthread + 30

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0x8fef2b02  ebx: 0x009883be  ecx: 0x0073c2c4  edx: 0x0975c084
  edi: 0x8fef2b02  esi: 0x00187d83  ebp: 0xbfffe758  esp: 0xbfffe6f8
   ss: 0x00000023  efl: 0x00010282  eip: 0x0073509b   cs: 0x0000001b
   ds: 0x00000023   es: 0x00000023   fs: 0x00000000   gs: 0x0000000f

The simulator continues to run but In-App purchases do not go anywhere on the simulator. Same code on the phone operates correctly.

This problem is new since upgrading to Xcode 4.5.1. It used to work fine on prior releases.

Anybody experiencing this problem or know of a solution?

ios-simulator
in-app-purchase
ios6
asked on Stack Overflow Oct 8, 2012 by Sergio

2 Answers

3

Straight from iOS 6.0 SDK release notes:

For this release, iOS Simulator does not support testing In-App Purchase. Please use a device to test your apps that use this feature.

answered on Stack Overflow Oct 20, 2012 by rocky
1

Confirmed that StoreKit calls cause the lsd error.

Here's my solution which has made all my lsd errors go away:

#import <TargetConditionals.h>
- (Result *) whateverStoreKitCallingFunction
{
#if TARGET_IPHONE_SIMULATOR
    return nil;    
#else // TARGET_IPHONE_SIMULATOR
    // Do whatever normal storekit calls
    return "whatever";
#endif // TARGET_IPHONE_SIMULATOR
}
answered on Stack Overflow Nov 19, 2012 by pctj101

User contributions licensed under CC BY-SA 3.0