クラッシュ ログによると、ユーザーがデバイスで Facebook にログインしているかどうかを確認しているときに、起動時にクラッシュするアプリがあります。問題は、このクラッシュを再現できず、別のデバイスで発生することです。これまでのところ、このクラッシュは iOS 6 より前のオペレーティング システムでしか発生していません。私のアプリでサポートされている最も古い iOS は 4.3 です。
このメソッドが時々失敗する理由についての手がかりを誰かが提供できる場合、コードは次のとおりです(そしてほとんどの場合は失敗しません!)
私が得るエラーは EXC_BAD_ACCESS (SIGSEGV);KERN_INVALID_ADDRESS at 0x00000000 です。
+ (BOOL)loggedIntoServiceOnDevice:(int)socialService {
__ENTERING_METHOD__
BOOL loggedIntoServiceOnDevice = NO;
ACAccountStore *accountStoreHere = [[NSClassFromString(@"ACAccountStore") alloc] init];
ACAccountType *accountType;
ACAccountType *accountType2;
if (accountStoreHere) {
if (socialService == FACEBOOK_SERVICE) {
ACAccountType *accountType = [accountStoreHere accountTypeWithAccountTypeIdentifier:@"com.apple.facebook"];
Class slComposeController = NSClassFromString(@"SLComposeViewController");
if (accountType && slComposeController != nil)
{
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
loggedIntoServiceOnDevice = YES;
}
}
}
else if (socialService == TWITTER_SERVICE) {
ACAccountType *accountType = [accountStoreHere accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
if (accountType)
{
Class slComposeController = NSClassFromString(@"SLComposeViewController");
if ([TWTweetComposeViewController canSendTweet] || slComposeController != nil) {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
loggedIntoServiceOnDevice = YES;
}
}
}
}
}
[accountStoreHere release];
return loggedIntoServiceOnDevice;
}