iOS 9 “fbauth2” відсутній у Info.plist


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

Будь-яка ідея, що це? Я додав його у свій список, але не працював.

Відповіді:


347

Ви можете продовжувати використовувати схеми URL-адрес, коли створюєте свою програму для iOS 9 і хочете викликати схеми URL-адрес, тепер вам потрібно буде оголосити їх у своїх програмах Info.plist. Існує новий ключ, LSApplicationQueriesSchemes , і тут вам потрібно буде додати список схем, на яких ви хочете бути canOpenURL.

Спробуйте так.

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

1
Дякую, хлопче. Я думав, що це буде потрібно лише в тому випадку, якщо я будую його на пристрої iOS9.
Феліпе

xml, скопіюйте / вставте версію, будь ласка: D?
Крістофер Франциско

20
Чому ця інформація не відображається в швидкому запуску для iOS? developers.facebook.com/quickstarts/926602334080849/…
Пол Бревчинський,

1
Дякую. Як ви це зрозуміли?
Ернан Арбер

1
@PaulBrewczynski Я не знаю, чому цього немає в посібнику з швидкого запуску, але я знайшов його в документації тут: developers.facebook.com/docs/ios/ios9
TM,

25

Якщо ви використовуєте iOS9, це важливо для оновлення файлу info.plist. Вам просто потрібно виконати 3 кроки 1. Перейдіть до info.plist 2. Додайте поле, а саме LSApplicationQueriesSchemes NSArray тип даних. 3. Додайте елемент типу даних NSString, назвіть його fbauth2.

Це воно. Просто почистіть і біжіть. попередження не відображатиметься знову.введіть тут опис зображення


Я запускаю це під Xcode 7.1, але використовую симулятор iPhone 6 Plus під управлінням iOS 8.1. Це не повинно з'являтися, чи не так?
Jerome Chan Yeow Heong

21

Що стосується v4.6.0 FaceBook SDK, додайте наступний ключ у свій файл plist:

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
</array>

Посилання: https://developers.facebook.com/docs/ios/ios9


1
developers.facebook.com/docs/ios/getting-started дійсно notговорить вам про це, добре, що ви на це вказали!
James111,


5

Будь ласка, просто не додайте це до своїх CFBundleURLSchemes ..., що насправді ВІДМІНЮЄ будь-яку спробу програми на автентифікацію Facebook, що призведе до появи діалогового вікна "Х додаток хоче відкрити" ...

Ви НЕ хочете цим займатися.

пор .:

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

Я отримав це під час запуску моїх тестів Kiwi, оскільки наша тестова мета не мала доступу до основного пакету. Тому мені довелося додати умову до 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];
}

Це спрацювало і у мене. Я не міг змусити нічого іншого працювати. Мені здається дивним, що нам доводиться редагувати код facebook, чи не буде він стертий, коли FB оновить свої кокоподи.
user2285278

1

Щоб створити свій додаток для iOS 9: (Для спільного користування Facebook)

  1. Відкрийте Info.plistфайл, додайте ще одне поле LSApplicationQueriesSchemes у розділі Список властивостей інформації та встановіть його тип даних Arrayабо NSArray.
  2. Додайте 3 елементи для LSApplicationQueriesSchemes і встановіть для їх типу даних значення Stringабо NSString.
  3. Присвоїти fbauth2, fbshareextension, в fbapiякості значення елемента.

Дотримуйтесь цієї фотографії :

введіть тут опис зображення


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
застарілий. Для нового SDK потрібно менше
goodguys_activate

0

Ви можете спробувати з наведеним нижче кодом в swift 5.0

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

Ви можете зателефонувати за допомогою Bundle

guard Bundle.externalURLSchemes.contains(URLScheme) else {
    return
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.