closeAndClearTokenInformation を呼び出した後に openWithBehavior を呼び出すと、EXC_BAD_ACCESS が発生します。ネイティブの iOS 組み込みダイアログを使用しているか、高速切り替えダイアログを使用しているかに関係なく。
初めて FB にログインするためのコードは次のとおりです。
if (![FBSession activeSession]) {
#ifdef FREE_APP
NSString* suffix = @"free";
#else
NSString* suffix = @"paid";
#endif
FBSession *session = [[[FBSession alloc] initWithAppID:@"111111111111111"
permissions:permissions
urlSchemeSuffix:suffix
tokenCacheStrategy:nil] autorelease];
[FBSession setActiveSession:session];
}
else if ([FBSession activeSession].isOpen)
[[FBSession activeSession] close];
[[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
ログアウトするコード。その後、上記のコードは openWithBehavior の後に失敗します。
[[FBSession activeSession] closeAndClearTokenInformation];
3.1 ドキュメントで規定されているように、最初は openWithBehavior の代わりに openActiveSessionWithReadPermissions を使用していました。これはクラッシュしませんが、FB アプリ/Safari からのアプリの切り替えは機能しませんでした。おそらく接尾辞が必要なためでしょうか?アプリの切り替えを修正して元に戻すのが最も簡単な場合は、アドバイスしてください。
ありがとう。