inApp购买时出现奇怪的行为

时间:2012-01-18 12:54:34

标签: 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但仍然没有运气 提前感谢任何线索!

1 个答案:

答案 0 :(得分:0)

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