2012-10-08 13 views
5

Si bien las pruebas compras en la aplicación en el simulador me sale el siguiente choque:compra en aplicación en el simulador de iOS hace que .../usr/libexec/lsd se bloquee

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 

El simulador sigue funcionando, pero Las compras en la aplicación no van a ninguna parte en el simulador. El mismo código en el teléfono funciona correctamente.

Este problema es nuevo desde la actualización a Xcode 4.5.1. Solía ​​funcionar bien en versiones anteriores.

¿Alguien tiene este problema o conoce una solución?

+0

operó correctamente en las versiones beta de Xcode 4.5. Aunque no probé en el GM. – Sergio

+0

También estoy viendo este error en el inicio, con solo una aplicación en la que estoy trabajando ... no usa la compra en la aplicación. Añadiré más detalles si encuentro alguno. –

+0

Es difícil dar una respuesta sin mirar la pieza de código que causa el bloqueo, pero, vea si lo siguiente le da una pista; este 'objc_msgSend() selector nombre: lanzamiento' sugiere que la aplicación está tratando de lanzar un objeto que muy probablemente ya se ha liberado o su dirección correspondiente ya no es válida, o el objeto se lanzará automáticamente, etc. y es por eso que Excepción de 'EXC_BAD_ACCESS (SIGBUS) '. –

Respuesta

3

Directamente desde iOS notas de la versión 6.0 del SDK:

Para esta versión, simulador de iOS no es compatible con las pruebas compra en aplicación. Utilice un dispositivo para probar sus aplicaciones que usan esta característica.

+1

También necesitará usar aprovisionamiento ad-hoc/producción. El aprovisionamiento de desarrollo no es compatible con las pruebas de compra en la aplicación (incluso con la tienda de sandbox). – Snips

+0

¿Es la solución para agregar #if IPHONE_SIMULATOR a todos los accesos de storekit en la aplicación? – buildsucceeded

+0

Ni siquiera me molestaría en probar IAP en el simulador ... – rocky

1

Confirmado que las llamadas a StoreKit causan el error lsd.

aquí está mi solución que ha hecho todos mis errores lsd desaparecen:

#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 
} 
Cuestiones relacionadas