O iOS 9 "fbauth2" está ausente no Info.plist

147
FBSDKLog: fbauth2 is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0

Alguma idéia do que é isso? Eu o adicionei na minha lista, mas não funcionou.

Nikhila
fonte

Respostas:

347

Você pode continuar usando esquemas de URL ao criar seu aplicativo para iOS 9 e desejar chamar esquemas de URL. Agora, será necessário declará-los no Info.plist dos aplicativos. Existe uma nova chave, LSApplicationQueriesSchemes , e aqui você precisará adicionar a lista de esquemas em que você pode ativar o canOpenURL.

Tente assim.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbauth2</string>
</array>
Kaey
fonte
1
Obrigado rapaz. Eu pensei que só seria necessário se eu estivesse construindo para um dispositivo iOS9.
Felipe
xml copiar / colar versão, por favor: D?
Christopher Francisco
20
Por que essas informações não são mostradas no início rápido do iOS? developers.facebook.com/quickstarts/926602334080849/...
Paul Brewczynski
1
Obrigado. Como você descobriu isso?
precisa
1
@PaulBrewczynski Não sei por que não está no guia de início rápido, mas o encontrei nos documentos aqui: developers.facebook.com/docs/ios/ios9
TMin
25

Se você estiver usando o iOS9, é importante atualizar o arquivo info.plist. Você só precisa executar 3 etapas 1. Vá para info.plist 2. Adicione um campo chamado LSApplicationQueriesSchemes NSArray. 3. Adicione um item do tipo de dados NSString ao nome de fbauth2.

É isso aí. Apenas limpe e corra. o aviso não será exibido novamente.insira a descrição da imagem aqui

M Swapnil
fonte
Estou executando isso no Xcode 7.1, mas usando o simulador do iPhone 6 Plus executando o iOS 8.1. Isso não deveria estar aparecendo, deveria?
Jerome Chan Yeow Heong
5

Por favor, não adicione isso aos seus CFBundleURLSchemes ... que realmente HIJACK a tentativa de qualquer aplicativo na autenticação do Facebook, fazendo com que um pop-up mostre a caixa de diálogo "O aplicativo X deseja abrir" ...

Você NÃO quer fazer isso.

cf:

https://developers.facebook.com/docs/applinks/ios
https://www.fireeye.com/blog/threat-research/2015/04/url_masques_on_apps.html
https://www.reddit.com/r/workflow/comments/2tlx29/get_url_scheme_of_any_app
user107172
fonte
2

Consegui isso ao executar meus testes de Kiwi, pois nosso alvo de teste não tinha acesso ao pacote principal. Então eu tive que adicionar uma condição isRegisteredCanOpenURLSchemenoFBSDKInternalUtility.m

+ (BOOL)isRegisteredCanOpenURLScheme:(NSString *)urlScheme
{
  static dispatch_once_t fetchBundleOnce;
  static NSArray *schemes = nil;

  dispatch_once(&fetchBundleOnce, ^{
    schemes = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"LSApplicationQueriesSchemes"];
    if (!schemes) { // This is a work around for our Kiwi tests as the Specs target doesn't have access to main bundle
      NSBundle *bundle = [NSBundle bundleForClass:[self class]];
      NSString *path = [bundle pathForResource:@"Info" ofType:@"plist"];
      NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path];
      schemes = [dictionary valueForKey:@"LSApplicationQueriesSchemes"];
    }
  });

  return [schemes containsObject:urlScheme];
}
MdaG
fonte
Isso funcionou para mim também. Não consegui fazer mais nada funcionar. Parece-me estranho que tenhamos que editar o código do facebook, não será apagado quando o FB atualizar seus cocópodes.
user2285278
1

Para criar seu aplicativo para iOS 9: (para compartilhamento no Facebook)

  1. Abra o Info.plistarquivo, adicione outro campo LSApplicationQueriesSchemes em Information Property List e defina seu tipo de dados Arrayou NSArray.
  2. Adicione 3 itens para LSApplicationQueriesSchemes e defina seu tipo de dados como Stringou NSString.
  3. Atribuir fbauth2, fbshareextension, fbapicomo valor do item.

Siga esta foto :

insira a descrição da imagem aqui

Roy
fonte
0
Write the below code in your info.plist under the **LSApplicationQueriesScheme**

<string>fbapi</string>
        <string>fbapi20130214</string>
        <string>fbapi20130410</string>
        <string>fbapi20130702</string>
        <string>fbapi20131010</string>
        <string>fbapi20131219</string>
        <string>fbapi20140410</string>
        <string>fbapi20140116</string>
        <string>fbapi20150313</string>
        <string>fbapi20150629</string>
        <string>fbauth</string>
        <string>fbauth2</string>
        <string>fb-messenger-api20140430</string>
        <string>fb-messenger-platform-20150128</string>
        <string>fb-messenger-platform-20150218</string>
        <string>fb-messenger-platform-20150305</string>
Deepak Saki
fonte
1
desatualizado. A mais recente SDK requer menos
goodguys_activate
0

Você pode tentar com o código abaixo em swift 5.0

extension Bundle {
   static let externalURLSchemes: [String] = {
      guard let urlTypes = main.infoDictionary?["LSApplicationQueriesSchemes"] 
       as? [String] else {
        return []
      }
      return urlTypes
   }()
}

Você pode ligar usando Bundle

guard Bundle.externalURLSchemes.contains(URLScheme) else {
    return
}
Sivabalaa Jothibose
fonte