私のアプリには、アクションの後にユーザーが[送信]ボタンを押すたびに、ゲームがそのアクションがGameCenterの実績であるかどうかを確認する機能があります。最近、接続の有無にかかわらず、アプリがクラッシュしている人がいます(すべての異なるiPhoneモデル、iPadモデル、iOSシステム)。クラッシュログから、問題は次のようになります。
Incident Identifier: E44706D0-6B10-44DD-BDB2-EDCD563011DC
CrashReporter Key: 7580fe38161bf461fc45c8e5c4c5ab07747756be
Hardware Model: iPhone5,2
Process: APPNAME [1417]
Path: /var/mobile/Applications/9B7EAD6C9-4A1F-4A46-84DE-762EDED1A1BD/APPNAME.app/APPNA
Identifier: APPNAME
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-11-08 23:40:52.926 -0500
OS Version: iOS 6.0.1 (10A525)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x3b3c03e2 0x3b2fe000 + 795618
1 libobjc.A.dylib 0x3a41995e 0x3a411000 + 35166
2 CoreFoundation 0x3b3c0302 0x3b2fe000 + 795394
3 CoreFoundation 0x3b3103e6 0x3b2fe000 + 74726
4 APPNAME 0x000f9950 -[Gamer updateCurrentAchievements:] (Gamer.m:621)
5 APPNAME 0x000f9698 -[Gamer checkWord] (Gamer.m:560)
6 APPNAME 0x000f8d22 -[Gamer ButtonPressed:] (Gamer.m:394)
これは、参照しているコードのブロックです。
-(void) updateCurrentAchievements:(int) achievement_number
{
NSLog(@"Achievement Number is %d",achievement_number);
char ch = [ self.appDelegate.previous_Achieved characterAtIndex:achievement_number-1 ];
if( ch == '0' )
{
currentAchieved[self.appDelegate.new_Achievements] = achievement_number;
self.appDelegate.new_Achievements++;
NSLog(@"new achievements are : %d",self.appDelegate.new_Achievements);
self.appDelegate.current_Achieved = [self.appDelegate.current_Achieved stringByReplacingCharactersInRange:NSMakeRange((achievement_number-1), 1) withString:@"1"];
self.appDelegate.previous_Achieved = self.appDelegate.current_Achieved;
[self.appDelegate checkAchievements:achievement_number];
}
NSLog(@"current Achievement string is %@ and length is %d",self.appDelegate.current_Achieved,[self.appDelegate.current_Achieved length]);
}
ここで何が起こっているのでしょうか?任意の洞察をいただければ幸いです。これ以上の情報を提供しなかった場合は申し訳ありませんが、お知らせください。確実に詳細をご記入いただけます。ありがとうございました!