Facebook iOS SDK 3.1.1 では、この呼び出しを使用してログインを実行しています -
NSArray *permissions = [[NSArray alloc] initWithObjects: @"email", @"user_birthday", @"user_location", nil];
@try {
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
}
@catch { ... }
このメソッドがNSInvalidArgumentException
message とともにスローされるまれなケースがあります。Access options are not permitted for this account type. The options argument must be nil.
これは からスローされ[ACAccountStore requestAccessToAccountsWithType:options:completion:]
ます。
のAppleのドキュメントを確認するとACAccountStore
、そのメソッドに対する次のコメントが表示されます。
「特定のアカウント タイプ (Facebook など) にはオプション ディクショナリが必要です。このようなアカウント タイプにオプション ディクショナリが提供されていない場合、このメソッドは NSInvalidArgumentException をスローします。逆に、アカウント タイプにオプション ディクショナリが必要ない場合、オプション パラメータはゼロ。」
Apple は、Facebook を除いてこれを nil にする必要がありますが、このメソッドは Facebook から呼び出されているため、これは Facebook または iOS 6.0/.1 のバグである可能性がありますが、この問題について Web 上で何も見つけることができませんでした。
何か案は?