iOS 9 "fbauth2" fehlt in Info.plist


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

Irgendeine Idee was das ist? Ich habe es in meine Liste aufgenommen, aber es hat nicht funktioniert.

Antworten:


347

Sie können weiterhin URL-Schemata verwenden, wenn Sie Ihre App für iOS 9 erstellen und URL-Schemata aufrufen möchten. Sie müssen sie jetzt in der Info.plist Ihrer Apps deklarieren. Es gibt einen neuen Schlüssel, LSApplicationQueriesSchemes , und hier müssen Sie die Liste der Schemata hinzufügen, für die canOpenURL verwendet werden soll.

Versuchen Sie es so.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbauth2</string>
</array>

1
Danke, Junge. Ich dachte, dass es nur notwendig wäre, wenn ich es auf ein iOS9-Gerät bauen würde.
Felipe

XML-Version zum Kopieren / Einfügen bitte: D?
Christopher Francisco

20
Warum werden diese Informationen beim Schnellstart für iOS nicht angezeigt? developer.facebook.com/quickstarts/926602334080849/…
Paul Brewczynski

1
Vielen Dank. Wie haben Sie das herausgefunden?
Hernan Arber

1
@ PaulBrewczynski Ich weiß nicht, warum es nicht in der Kurzanleitung steht, aber ich habe es in den Dokumenten hier gefunden: developer.facebook.com/docs/ios/ios9
TMin

25

Wenn Sie iOS9 verwenden, ist dies wichtig, um Ihre info.plist-Datei zu aktualisieren. Sie müssen nur 3 Schritte ausführen. 1. Gehen Sie zu info.plist. 2. Fügen Sie ein Feld hinzu, nämlich LSApplicationQueriesSchemes NSArray-Datentyp LSApplicationQueriesSchemes. 3. Fügen Sie ein Element des NSString-Datentyps mit dem Namen fbauth2 hinzu.

Das ist es. Einfach putzen und rennen. Warnung wird nicht wieder angezeigt.Geben Sie hier die Bildbeschreibung ein


Ich führe dies unter Xcode 7.1 aus, verwende aber den iPhone 6 Plus-Simulator unter iOS 8.1. Dies sollte nicht erscheinen, oder?
Jerome Chan Yeow Heong



5

Bitte füge dies einfach nicht zu deinen CFBundleURLSchemes hinzu ... das wird tatsächlich den Versuch einer App zur Facebook-Authentifizierung HIJACKEN, was dazu führt, dass in einem Popup das Dialogfeld "X-App möchte öffnen" angezeigt wird ...

Das willst du NICHT tun.

Vgl.:

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

2

Ich habe dies beim Ausführen meiner Kiwi-Tests erhalten, da unser Testziel keinen Zugriff auf das Hauptpaket hatte. So hatte ich eine Bedingung hinzuzufügen , isRegisteredCanOpenURLSchemeinFBSDKInternalUtility.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];
}

Das hat auch bei mir funktioniert. Ich konnte nichts anderes zum Arbeiten bringen. Dies scheint mir seltsam, dass wir Facebook-Code bearbeiten müssen, wird er nicht gelöscht, wenn FB ihre Cocopods aktualisiert.
user2285278

1

So erstellen Sie Ihre App für iOS 9: (Für Facebook Share)

  1. Öffnen Sie die Info.plistDatei, fügen Sie unter Information Property List ein weiteres Feld LSApplicationQueriesSchemes hinzu und legen Sie den Datentyp Arrayoder festNSArray .
  2. Fügen Sie 3 Elemente für LSApplicationQueriesSchemes hinzu und setzen Sie ihren Datentyp auf StringoderNSString .
  3. Assign fbauth2, fbshareextension, fbapials Elementwert.

Folgen Sie diesem Foto :

Geben Sie hier die Bildbeschreibung ein


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>

1
veraltet. Das neuere SDK benötigt weniger
goodguys_activate

0

Sie können es mit dem folgenden Code versuchen swift 5.0

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

Sie können mit anrufen Bundle

guard Bundle.externalURLSchemes.contains(URLScheme) else {
    return
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.