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 Не знаю, почему его нет в руководстве по
быстрому старту,

25

Если вы используете iOS9, важно обновить файл info.plist. Вам просто нужно сделать 3 шага 1. Перейдите в info.plist 2. Добавьте поле, а именно тип данных LSApplicationQueriesSchemes NSArray. 3. Добавьте элемент типа данных NSString, назовите его fbauth2.

Это оно. Просто убери и беги. предупреждение больше не появитсявведите описание изображения здесь


Я запускаю это под Xcode 7.1, но использую симулятор iPhone 6 Plus под iOS 8.1. Это не должно появляться, не так ли?
Джером Чан Йоу Хонг

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, вызывая всплывающее окно, показывающее диалог "X app хочет открыть" ...

Вы НЕ хотите этого делать.

сравни:

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

Я получил это при выполнении моих тестов на киви, так как у нашей тестовой цели не было доступа к основному пакету. Поэтому мне пришлось добавить условие isRegisteredCanOpenURLSchemeвFBSDKInternalUtility.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];
}

Это сработало и для меня. Я не мог заставить что-нибудь еще работать. Мне кажется странным, что мы должны редактировать код facebooks, не будет ли он удален, когда 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.