Brakuje iOS 9 „fbauth2” w Info.plist


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

Masz jakiś pomysł, co to jest? Dodałem go do swojej listy, ale nie zadziałał.

Odpowiedzi:


347

Możesz nadal używać schematów adresów URL podczas tworzenia aplikacji na iOS 9 i chcesz wywoływać schematy adresów URL, musisz teraz zadeklarować je w swoich aplikacjach Info.plist. Jest nowy klucz, LSApplicationQueriesSchemes , i tutaj będziesz musiał dodać listę schematów, na których chcesz, aby można było otworzyć adres URL.

Spróbuj w ten sposób.

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

1
Dzięki, chłopcze. Pomyślałem, że będzie to konieczne tylko wtedy, gdy zbuduję go na urządzeniu z systemem iOS9.
— Felipe

xml wersja do kopiowania / wklejania: D?
— Christopher Francisco

20
Dlaczego te informacje nie są wyświetlane w przewodniku Szybki start dla systemu iOS? developers.facebook.com/quickstarts/926602334080849/…
— Paul Brewczynski

1
Dzięki. Jak to rozgryzłeś?
— Hernan Arber

1
@PaulBrewczynski Nie wiem, dlaczego nie ma tego w przewodniku szybkiego startu, ale znalazłem to w dokumentach tutaj: developers.facebook.com/docs/ios/ios9
— TM

25

Jeśli używasz iOS9, ważne jest, aby zaktualizować plik info.plist. Wystarczy wykonać 3 kroki 1. Przejdź do info.plist 2. Dodaj pole o typie danych LSApplicationQueriesSchemes NSArray . 3. Dodaj element typu danych NSString, nadaj mu nazwę fbauth2.

Otóż ​​to. Po prostu wyczyść i uruchom. ostrzeżenie nie pokaże się ponownie.wprowadź opis obrazu tutaj


Używam tego pod Xcode 7.1, ale używam symulatora iPhone'a 6 Plus z systemem iOS 8.1. To nie powinno się pojawiać, prawda?
— Jerome Chan Yeow Heong



5

Po prostu nie dodawaj tego do swoich CFBundleURLSchemes ... to faktycznie spowoduje HIJACK próbę dowolnej aplikacji do autoryzacji Facebooka, powodując wyskakujące okienko z oknem dialogowym "X app chce otworzyć" ...

NIE CHCESZ tego robić.

por .:

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

Otrzymałem to podczas uruchamiania testów Kiwi, ponieważ nasz cel testowy nie miał dostępu do głównego pakietu. Musiałem więc dodać warunek do 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];
}

Na mnie też to zadziałało. Nie mogłem zmusić niczego innego do pracy. Wydaje mi się dziwne, że musimy edytować kod facebooka, czy nie zostanie on usunięty, gdy FB zaktualizuje ich kokonogi.
— user2285278

1

Aby zbudować aplikację na iOS 9: (dla funkcji Facebook Share)

  1. Otwórz Info.plistplik, dodaj kolejne pole LSApplicationQueriesSchemes w sekcji Lista właściwości informacji i ustaw jego typ danych Arraylub NSArray.
  2. Dodaj 3 elementy dla LSApplicationQueriesSchemes i ustaw ich typ danych na Stringlub NSString.
  3. Przypisywanie fbauth2, fbshareextension, fbapijako wartość elementu.

Śledź to zdjęcie :

wprowadź opis obrazu tutaj


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
przeterminowany. Nowszy SDK wymaga mniej
— goodguys_activate

0

Możesz spróbować z poniższym kodem w swift 5.0

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

Możesz zadzwonić za pomocą Bundle

guard Bundle.externalURLSchemes.contains(URLScheme) else {
    return
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.