objective-c - 应用内购买的奇怪行为

标签 objective-c ios sdk crash in-app-purchase

我最近遇到一个很奇怪的问题。我有一个代码可以在我的应用程序中处理 inApp 购买。一个月来我没有更改代码中的任何内容,这周我在调用以下方法时遇到了崩溃:

//
// call this before making a purchase
//
- (BOOL)canMakePurchases
{return [SKPaymentQueue canMakePayments];
}

我尝试在 gdb 中执行 bt 命令并得到以下信息:

#0  0x33adffdc in CFRetain ()
#1  0x31f5bdb6 in ___init_block_invoke_2 ()
#2  0x36e797ea in _dispatch_barrier_sync_f_invoke ()
#3  0x36e7965a in dispatch_barrier_sync_f$VARIANT$up ()
#4  0x36e7928e in dispatch_sync_f$VARIANT$up ()
#5  0x36e79910 in dispatch_sync$VARIANT$up ()
#6  0x36e7b576 in dispatch_once_f$VARIANT$up ()
#7  0x31f5c706 in CPLoggingAddCustomLogFile ()
#8  0x320a2658 in __MCLoggingInitialize_block_invoke_1 ()
#9  0x36e7b576 in dispatch_once_f$VARIANT$up ()
#10 0x320a26a4 in MCLoggingInitialize ()
#11 0x320a3060 in -[MCProfileConnection _init] ()
#12 0x320a3764 in +[MCProfileConnection sharedConnection] ()
#13 0x31750764 in +[SKPaymentQueue canMakePayments] ()
#14 0x00037702 in -[InAppPay canMakePurchases] (self=0x44b1a0, _cmd=0x149c1e) at    /Users/lowfreq/Desktop/Projects/magazinereader/Archive/InAppPay.m:32
#15 0x00039444 in -[PreViewArchives Tap:] (self=0x46aba0, _cmd=0x149d03, sender=0x46f030) at /Users/lowfreq/Desktop/Projects/magazinereader/Archive/PreViewArchives.m:161
#16 0x33af1434 in -[NSObject performSelector:withObject:withObject:] ()
#17 0x34c1f9ea in -[UIApplication sendAction:to:from:forEvent:] ()
#18 0x34c1f9a6 in -[UIApplication sendAction:toTarget:fromSender:forEvent:] ()
#19 0x34c1f984 in -[UIControl sendAction:to:forEvent:] ()
#20 0x34c1f6f4 in -[UIControl(Internal) _sendActionsForEvents:withEvent:] ()
#21 0x34c2002c in -[UIControl touchesEnded:withEvent:] ()
#22 0x34c1e50e in -[UIWindow _sendTouchesForEvent:] ()
#23 0x34c1df00 in -[UIWindow sendEvent:] ()
#24 0x34c044ec in -[UIApplication sendEvent:] ()
#25 0x34c03d2c in _UIApplicationHandleEvent ()
#26 0x3572edf2 in PurpleEventCallback ()
#27 0x33b6b552 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#28 0x33b6b4f4 in __CFRunLoopDoSource1 ()
#29 0x33b6a342 in __CFRunLoopRun ()
#30 0x33aed4dc in CFRunLoopRunSpecific ()
#31 0x33aed3a4 in CFRunLoopRunInMode ()
#32 0x3572dfcc in GSEventRunModal ()
#33 0x34c32742 in UIApplicationMain ()
#34 0x00002364 in main (argc=1, argv=0x2fdffb38) at /Users/lowfreq/Desktop/Projects/magazinereader/main.m:14
Current language:  auto; currently objective-c

这是怎么回事?我不明白为什么几个月来没有任何问题的代码现在让我崩溃了? 我尝试从头开始重建配置文件,重置我的 iPad,但仍然没有成功 提前感谢您提供任何线索!

最佳答案

因为你正在尝试 SKPaymentQueue canMakePayments 在设备和模拟器中都尝试..如果它在两者中崩溃..那么它一定是代码错误..然后发布代码。

关于objective-c - 应用内购买的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8910401/

相关文章:

google-app-engine - 无法删除版本 - gcloud app versions stop [id]

ios - watch 套件 : adding "Notifications Scene" to existing watchkit app ios

objective-c - Objective C - iOS,在屏幕外的静态表格单元格内迭代 UILabels

ios - 在非 ARC 项目中使用 ARC 静态库

ios - SwiftUI 如何更改 keyUp macOS 事件的状态?

ios - 使用静默 APNS 推送通知在没有用户通知的情况下发送 token ?

android - 请配置Android SDK Android Studio

ios - iPhone中的UiWebview根据内容大小调整大小

objective-c - Swift 变量是原子的吗?

javascript - JavaScript Azure SDK 中的 DefaultAzureCredential、InteractiveBrowserCredential 等由于未找到 child_process,在编译时会引发错误