NSInvalidArgumentException lançado de ACAccountStore ao chamar [FBSession openActiveSessionWithPermissions…] no iOS 6.0 e iOS 6.0.1
Com o Facebook iOS SDK 3.1.1, estou executando o login usando esta chamada -
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 { ... }
Há casos raros em que este método lançaNSInvalidArgumentException
com mensagemAccess options are not permitted for this account type. The options argument must be nil.
, isso é jogado de[ACAccountStore requestAccessToAccountsWithType:options:completion:]
.
Verificando os documentos da Apple sobreACAccountStore
, Vejo este comentário para esse método:
"Alguns tipos de conta (como o Facebook) exigem um dicionário de opções. Esse método lançará um NSInvalidArgumentException se o dicionário de opções não for fornecido para esses tipos de conta. Por outro lado, se o tipo de conta não exigir um dicionário de opções, o parâmetro options deve ser nada."
A Apple exige que isso seja nulo, exceto no Facebook, mas esse método é chamado pelo Facebook, então talvez isso seja um bug - no Facebook ou no iOS 6.0 / .1, mas não consegui encontrar nada na Web sobre esse problema.
Alguma ideia?