我是一个初学者的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.
Also this Events Detail:
Instruments Stack Trace
所以,这个错误可能来自于这个"__NotifyObserverAboutChanges"。
我不知道从这里该怎么办。我已经删除了我所有的pod,这些pod以某种方式链接到StoreKit以及我所有的方法和类用于应用程序购买,但如果这个错误继续。显然onessignal,我的推送通知提供商,有这个应用内购买跟踪器,这是抛出这个崩溃。
如果有人能告诉我该怎么做,我将非常感激。我现在真想碰头。很可能你没有从视图控制器中删除事务观察者。所以当用户关闭页面然后再次打开它时,它会尝试将事务发送给两个视图控制器(呈现的和旧的仍然在内存中)并崩溃。