2013-11-04 72 views
7

我已经一遍又一遍地这个活的应用程序崩溃日志,并不能发现问题:MKStoreKit崩溃与SIGTRAP错误

1 CoreFoundation _CFHash + 130 
2 CoreFoundation CFBasicHashFindBucket + 724 
3 CoreFoundation _CFDictionaryGetValue + 99 
4 CoreFoundation -[CFXPreferencesPropertyListSource setValue:forKey:] + 39 
5 CoreFoundation _CFXPreferencesSetValue + 139 
6 CoreFoundation _CFPreferencesSetAppValue + 45 
7 Foundation -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 61 
8 MyApp -[MKStoreManager rememberPurchaseOfProduct:withReceipt:] (MKStoreManager.m:884) 
9 MyApp -[MKStoreManager provideContent:forReceipt:hostedContent:] (MKStoreManager.m:848) 
10 MyApp -[MKStoreManager restoreTransaction:] (MKStoreManager.m:1004) 
11 MyApp -[MKStoreManager paymentQueue:updatedTransactions:] (MKStoreManager.m:911) 
12 StoreKit __NotifyObserverAboutChanges + 85 

这里是我认为这是与崩溃相关的代码(ES! ):

- (void)rememberPurchaseOfProduct:(NSString*) productIdentifier withReceipt:(NSData*) receiptData { 

    NSDictionary *allConsumables = [[MKStoreManager storeKitItems] objectForKey:@"Consumables"]; 
    if([[allConsumables allKeys] containsObject:productIdentifier]) 
    { 
     NSDictionary *thisConsumableDict = [allConsumables objectForKey:productIdentifier]; 
     NSInteger quantityPurchased = [[thisConsumableDict objectForKey:@"Count"] integerValue]; 
     NSString* productPurchased = [thisConsumableDict objectForKey:@"Name"]; 

     NSInteger oldCount = [[MKStoreManager numberForKey:productPurchased] integerValue]; 
     NSInteger newCount = oldCount + quantityPurchased; 

     [MKStoreManager setObject:[NSNumber numberWithInteger:newCount] forKey:productPurchased]; 
    } 
    else 
    { 
     [MKStoreManager setObject:[NSNumber numberWithBool:YES] forKey:productIdentifier]; 

     //set flag in NSUserDefaults as another place we chan check to see if they have purchased the app 
     //we may not want to check this, however, as an OR, since it can be easily jailbroken 
     [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:productIdentifier]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 

    [MKStoreManager setObject:receiptData forKey:[NSString stringWithFormat:@"%@-receipt", productIdentifier]]; 
} 

我一直使用这个相同的代码多年没有问题。任何人都可以请帮助指出我在正确的方向吗?

更新:张贴下面完全崩溃日志

Incident Identifier: 07EF534E-E37C-4AF3-982A-11D6997A0D5C 
CrashReporter Key: CE01293A-021D-4DAD-BFA9-7F24957608B7 
Hardware Model:  iPhone6,1 
Process:   MyApp [1590] 
Path:   /Users/USER/MyApp.app/MyApp 
Identifier:  com.mysoftware.myapp 
Version:   1.3.1 
Code Type:  ARM 
Parent Process: launchd [1] 

Date/Time:  2013-11-04T18:31:48Z 
OS Version:  iPhone OS 7.0.3 (11B511) 
Report Version: 104 

Exception Type: SIGTRAP 
Exception Codes: #0 at 0x2fdd01be 
Crashed Thread: 0 

Thread 0 Crashed: 
0 CoreFoundation      0x2fdd01be _CFHash + 130 
1 CoreFoundation      0x2fdccb6c CFBasicHashFindBucket + 724 
2 CoreFoundation      0x2fdcc873 _CFDictionaryGetValue + 99 
3 CoreFoundation      0x2fe14ab3 -[CFXPreferencesPropertyListSource setValue:forKey:] + 39 
4 CoreFoundation      0x2fe14a2f _CFXPreferencesSetValue + 139 
5 CoreFoundation      0x2fe14905 _CFPreferencesSetAppValue + 45 
6 Foundation       0x307d0a55 -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 61 
7 MyApp       0x00134d59 -[MKStoreManager rememberPurchaseOfProduct:withReceipt:] (MKStoreManager.m:884) 
8 MyApp       0x0013496d -[MKStoreManager provideContent:forReceipt:hostedContent:] (MKStoreManager.m:848) 
9 MyApp       0x0013538f -[MKStoreManager restoreTransaction:] (MKStoreManager.m:1004) 
10 MyApp       0x00134ed5 -[MKStoreManager paymentQueue:updatedTransactions:] (MKStoreManager.m:911) 
11 StoreKit       0x325b6e85 __NotifyObserverAboutChanges + 85 
12 CoreFoundation      0x2fdd2ea1 _CFArrayApplyFunction + 37 
13 StoreKit       0x325b6e21 -[SKPaymentQueue _notifyObserversAboutChanges:sendUpdatedDownloads:] + 129 
14 StoreKit       0x325b76f9 -[SKPaymentQueue _processUpdates:trimUnmatched:sendUpdatedDownloads:] + 1017 
15 StoreKit       0x325b7dc9 -[SKPaymentQueue _setTransactionsWithReply:] + 129 
16 StoreKit       0x325b69bf __38-[SKPaymentQueue _establishConnection]_block_invoke_2 + 63 
17 libdispatch.dylib     0x3a6e50c3 _dispatch_call_block_and_release + 11 
18 libdispatch.dylib     0x3a6e50af _dispatch_client_callout + 23 
19 libdispatch.dylib     0x3a6e79a9 __dispatch_main_queue_callback_4CF + 269 
20 CoreFoundation      0x2fe6a5b1 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9 
21 CoreFoundation      0x2fe68e7d __CFRunLoopRun + 1309 
22 CoreFoundation      0x2fdd3471 _CFRunLoopRunSpecific + 525 
23 CoreFoundation      0x2fdd3253 _CFRunLoopRunInMode + 107 
24 GraphicsServices     0x34b072eb _GSEventRunModal + 139 
25 UIKit        0x32688845 _UIApplicationMain + 1137 
26 MyApp       0x00083fff main (main.m:4) 

Thread 1: 
0 libsystem_kernel.dylib    0x3a79d838 _kevent64 + 24 
1 libdispatch.dylib     0x3a6e6623 _dispatch_mgr_thread + 39 

Thread 2: 
0 libsystem_kernel.dylib    0x3a79da84 _mach_msg_trap + 20 
1 CoreFoundation      0x2fe6a559 __CFRunLoopServiceMachPort + 157 
2 CoreFoundation      0x2fe68c79 __CFRunLoopRun + 793 
3 CoreFoundation      0x2fdd3471 _CFRunLoopRunSpecific + 525 
4 CoreFoundation      0x2fdd3253 _CFRunLoopRunInMode + 107 
5 WebCore        0x37d9a0c5 RunWebThread(void*) + 421 
6 libsystem_pthread.dylib    0x3a816c5d _pthread_body + 141 
7 libsystem_pthread.dylib    0x3a816bcf __pthread_start + 103 

Thread 3: 
0 libsystem_kernel.dylib    0x3a79da84 _mach_msg_trap + 20 
1 CoreFoundation      0x2fe6a559 __CFRunLoopServiceMachPort + 157 
2 CoreFoundation      0x2fe68c79 __CFRunLoopRun + 793 
3 CoreFoundation      0x2fdd3471 _CFRunLoopRunSpecific + 525 
4 CoreFoundation      0x2fe170db _CFRunLoopRun + 99 
5 CoreMotion       0x3048b369 _CLSF_thorntonUpdate_6x6 + 57225 
6 libsystem_pthread.dylib    0x3a816c5d _pthread_body + 141 
7 libsystem_pthread.dylib    0x3a816bcf __pthread_start + 103 

Thread 4: 
0 libsystem_kernel.dylib    0x3a7b0c7c ___workq_kernreturn + 8 

Thread 5: 
0 libsystem_kernel.dylib    0x3a7b0c7c ___workq_kernreturn + 8 

Thread 6: 
0 libsystem_kernel.dylib    0x3a7b0c7c ___workq_kernreturn + 8 

Thread 0 crashed with ARM Thread State: 
    r0: 0x00000000  r1: 0x2fdd013d  r2: 0x00000000  r3: 0x00000304 
    r4: 0x00000000  r5: 0x00000004  r6: 0x00000000  r7: 0x004bb994 
    r8: 0x1752fd80  r9: 0x176e45a8 r10: 0x2ff063d0 r11: 0x3a9aa5c4 
    ip: 0x2fdd53c9  sp: 0x004bb98c  lr: 0x2fdccb6c  pc: 0x2fdd01be 
    cpsr: 0x60000030 

Binary Images: 
    0x81000 - 0x202fff + MyApp armv7s <fc1bc90151cf30da9de8889a1115ae51> /Users/USER/MyApp.app/MyApp 
0x2eb73000 - 0x2eb8efff libJapaneseConverter.dylib armv7s <f248c9d2ab0c3a2c96b4afbb5f30e6f1> /System/Library/CoreServices/Encodings/libJapaneseConverter.dylib 
0x2ed2f000 - 0x2ee30fff AVFoundation armv7s <759b362f09e53f37a2ec82372a95d1de> /System/Library/Frameworks/AVFoundation.framework/AVFoundation 
0x2ee31000 - 0x2ee59fff libAVFAudio.dylib armv7s <0925efab4dd338e382aa5b10cdbed33f> /System/Library/Frameworks/AVFoundation.framework/libAVFAudio.dylib 
0x2ee5a000 - 0x2ee5afff Accelerate armv7s <9340338f3cdf347abe4a88c2f59b5b12> /System/Library/Frameworks/Accelerate.framework/Accelerate 
0x2ee64000 - 0x2f031fff vImage armv7s <479b5c4701833284ab587a1d2fdb5627> /System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/vImage 
0x2f032000 - 0x2f114fff libBLAS.dylib armv7s <da4fa367557d3028b02458e2cdf6d84d> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib 
0x2f115000 - 0x2f3d0fff libLAPACK.dylib armv7s <066ea8372dd23f6d89011f9a4a872d6f> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLAPACK.dylib 
0x2f3d1000 - 0x2f43ffff libvDSP.dylib armv7s <a5dcfe68199839b989c7be120c14ccb4> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib 
0x2f440000 - 0x2f452fff libvMisc.dylib armv7s <ea636bbda5ee33119a4e731aed02fa31> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvMisc.dylib 
0x2f453000 - 0x2f453fff vecLib armv7s <663aefa25bc5367baa72ca144ac26d18> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib 
0x2f454000 - 0x2f473fff Accounts armv7s <811f7e5dcd353c57af6d6de859848774> /System/Library/Frameworks/Accounts.framework/Accounts 
0x2f474000 - 0x2f474fff AdSupport armv7s <fa30d96d0a333568826efd5aad83097a> /System/Library/Frameworks/AdSupport.framework/AdSupport 
0x2f475000 - 0x2f4dafff AddressBook armv7s <cc733c2c249e3161a9af19a44aeb1577> /System/Library/Frameworks/AddressBook.framework/AddressBook 
0x2f4db000 - 0x2f5ecfff AddressBookUI armv7s <8f681556d73d3ee5b9bfead2a124927c> /System/Library/Frameworks/AddressBookUI.framework/AddressBookUI 
0x2f5ed000 - 0x2f5fefff AssetsLibrary armv7s <4c426c7f5e3930f0bd01d3e1f17f0392> /System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary 
0x2f743000 - 0x2fa5ffff AudioToolbox armv7s <f49f28790aa036c08e5573071a7e2870> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox 
0x2fa60000 - 0x2fb65fff CFNetwork armv7s <36562cff956f38a09956da9218198ccf> /System/Library/Frameworks/CFNetwork.framework/CFNetwork 
0x2fb66000 - 0x2fbc1fff CoreAudio armv7s <34f47ad0c4d530249298888a1217316f> /System/Library/Frameworks/CoreAudio.framework/CoreAudio 
0x2fbc2000 - 0x2fbd8fff CoreBluetooth armv7s <0211d5169d0d3838a9cbb9dd5086a312> /System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth 
0x2fbd9000 - 0x2fdcafff CoreData armv7s <4ed490c5fd693fefac89d75a47eab553> /System/Library/Frameworks/CoreData.framework/CoreData 
0x2fdcb000 - 0x2ff0efff CoreFoundation armv7s <37c6b3b7abca3774bec8fecf79f07013> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 
0x2ff0f000 - 0x30033fff CoreGraphics armv7s <e13cbd4115dc3113b875de88b92744f8> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics 
0x30035000 - 0x30070fff libCGFreetype.A.dylib armv7s <4be02e4373903a7d8295e4e0859326ab> 

(太长SO后休息,但如果有人认为它可能是有帮助的,我可以在注释中添加它)

+0

什么是崩溃日志显示的实际错误:

MKStoreManager.m-(void) provideContent: (NSString*) productIdentifier在顶部加入一个nil检查?哪条线是884线? – rmaddy

+0

884行是:[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:productIdentifier];我收到来自报告服务的崩溃报告,所以我有一个报告摘要显示“原因:没有找到原因字符串。例外类型:SIGTRAP” – SAHM

+0

崩溃仅在iOS 7中,主要在7.0.3中,但它确实发生了一次在7.0.1;跨越所有设备 – SAHM

回答