2012-01-18 9 views
1

最近、私は非常に奇妙な問題を抱えています。私はアプリでinAppの購入を処理するコードを持っています。私は、月のコードには何も変わっていないと、次のメソッドを呼び出すときに、この一週間、私はクラッシュを得た: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

大丈夫、私は問題が何かを持っている。この問題は、ロシア語の文字で書かれたアプリの名前が原因です。アプリ名に最初のスペースを追加すると、問題はなくなりました。 SDK自体に醜いバグがあるように思えます。 – Adviser2010

+0

謎ですが、それは動作します! – FunkyKat

答えて

0

SKPaymentQueue canMakePaymentsデバイスとシミュレータの両方で試してみてください。両方がクラッシュした場合は、コードエラーとなります。コードを投稿してください。

+0

私はどこでも試してみましたが、運は全くありません。\t \t \t self.inAppPay = [[InAppPay alloc] init]; [[SKPaymentQueue defaultQueue] addTransactionObserver:self.inAppPay]; \t \t \t self.inAppPay.preViewArchives = self; \t \t \t([inAppPay canMakePurchases] == YES){ \t \t \t \tはNO = button.enabled場合。 \t \t \t \t NSLog(@ "PAY TRUE"); \t \t \t \t [self.inAppPay purchaseProアップグレード:idProducts]; \t \t \t} else {NSLog(@ "PAY FAIL");} – Adviser2010

+0

デバイスとシミュレータの両方でクラッシュしますか? – Shubhank

+0

はい。それは両方でクラッシュします!本当に面白いのはそれ自体がクラッシュしないことです。それはちょうど永遠につかまえられます。canMakePaymentコール – Adviser2010

関連する問題