過去 2 日間、アプリの複数のアカウントに接続しようとしましたが、成功しませんでした。
Facebook SDK がキャッシュされたトークンを正しくクリアしないという潜在的な問題があることを読みました。バージョン 3.1.1 を使用しています。
これがその方法です。
新規インストールから:
- アカウント 1 に接続します。
- ゲームを起動し、正常にログインします。すべて順調。
- ゲームを閉じる
- 設定に移動し、アカウント 2 に変更します。
- ゲームの起動、ログインに失敗しました。
私は openActiveSessionWithReadPermissions からそのエラー コードを受け取っています: FBSessionStateClosedLoginFailed そして、Facebook が自分の情報へのアクセス許可を求めているときに [OK] ボタンを押しても、返される許可された変数は NO と表示されます。
私が行った調査により、残念ながら失敗した複数のソリューションが得られました。この関数で再同期を試みました:
- (void)fbResync
{
ACAccountStore *accountStore;
ACAccountType *accountTypeFB;
if ((accountStore = [[ACAccountStore alloc] init]) && (accountTypeFB = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook] ) )
{
NSArray *fbAccounts = [accountStore accountsWithAccountType:accountTypeFB];
id account;
if (fbAccounts && [fbAccounts count] > 0 && (account = [fbAccounts objectAtIndex:0]))
{
[accountStore renewCredentialsForAccount:account completion:^(ACAccountCredentialRenewResult renewResult, NSError *error)
{
//we don't actually need to inspect renewResult or error.
if (error){
}
}];
}
}
fbAccounts は常に空の配列を返します。だから私は本当に再同期することはできません。
また、ステータススイッチでFacebookトークンをクリアしようとしました
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
{
[FBSession.activeSession close];
[FBSession.activeSession closeAndClearTokenInformation];
// Clear out the Facebook instance
[self.facebook logout];
self.facebook.accessToken = nil;
self.facebook.expirationDate = nil
}break;
何をしても、Facebook トークンを完全に取り除くことはできないようです。私が見つけた唯一の方法は、解決策ではない IPAD の設定をリセットすることでした。
他に試すことができるオプションはありますか?
ありがとう!
私が知っているチケット: