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ł.

nikhila
źródło

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>
Kaey
źródło
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

M Swapnil
źródło
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
user107172
źródło
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];
}
MdaG
źródło
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

Roy
źródło
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
źródło
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
}
Sivabalaa Jothibose
źródło