请耐心等待。
我是StoreKit的初学者,我对此非常艰难。
In App Purchase的配置全部完成,我已经设法进行了一些先前的测试。但是现在应用程序在启动后每隔一段时间就会崩溃。显然问题是这个错误:
* thread #1: tid = 0x38d39, 0x00000001902a4bb4 libobjc.A.dylib`lookUpImpOrForward + 80, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x1a10058f938)
frame #0: 0x00000001902a4bb4 libobjc.A.dylib`lookUpImpOrForward + 80
frame #1: 0x00000001902af258 libobjc.A.dylib`_objc_msgSend_uncached + 56
frame #2: 0x000000019e2fa120 StoreKit`__NotifyObserverAboutChanges + 84
frame #3: 0x000000019173b9a8 CoreFoundation`CFArrayApplyFunction + 68
frame #4: 0x000000019e2fa0b0 StoreKit`-[SKPaymentQueue _notifyObserversAboutChanges:sendUpdatedDownloads:] + 148
frame #5: 0x000000019e2fabec StoreKit`-[SKPaymentQueue _processUpdates:trimUnmatched:sendUpdatedDownloads:] + 1288
frame #6: 0x000000019e2fb47c StoreKit`-[SKPaymentQueue _setTransactionsWithReply:] + 196
frame #7: 0x000000019e2f9b2c StoreKit`__38-[SKPaymentQueue _establishConnection]_block_invoke_2 + 64
frame #8: 0x0000000101ad525c libdispatch.dylib`_dispatch_call_block_and_release + 24
frame #9: 0x0000000101ad521c libdispatch.dylib`_dispatch_client_callout + 16
frame #10: 0x0000000101ada284 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 1200
frame #11: 0x000000019180ff2c CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
frame #12: 0x000000019180db18 CoreFoundation`__CFRunLoopRun + 1660
frame #13: 0x000000019173c048 CoreFoundation`CFRunLoopRunSpecific + 444
frame #14: 0x00000001931c2198 GraphicsServices`GSEventRunModal + 180
frame #15: 0x00000001977282fc UIKit`-[UIApplication _run] + 684
frame #16: 0x0000000197723034 UIKit`UIApplicationMain + 208
* frame #17: 0x000000010010b8b8 Otelo`main + 140 at AppDelegate.swift:17
frame #18: 0x00000001907205b8 libdyld.dylib`start + 4
我试图使用乐器寻找僵尸,我得到了这样的信息:
将Objective-C消息发送给已解除分配的OneSignalTrackIAP' 对象(僵尸)地址:0x170017100。
此活动详情:
所以大概是这个错误来自于这个" __ NotifyObserverAboutChanges"。
我不知道该怎么做。我删除了所有以某种方式链接到StoreKit的pod以及我在In App Purchases中的所有方法和类,但是这个错误仍在继续。显然,我的推送通知提供商OneSignal有这个In App Purchase Tracker,它正在引发这次崩溃。
如果有人能让我了解我应该做些什么,我真的很感激。我现在想把头撞到墙上。
提前致谢。
答案 0 :(得分:0)
您很可能不会从视图控制器中删除事务观察器。因此,当用户关闭页面然后再次打开它时,它会尝试将事务发送到两个视图控制器(现有的和旧的仍在内存中)并崩溃。