Info.plist中缺少iOS 9“ fbauth2”


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

知道这是什么吗?我已将其添加到我的列表中,但没有用。

Answers:


347

在为iOS 9构建应用程序时,您可以继续使用URL方案,并且要调用URL方案,现在需要在应用程序Info.plist中声明它们。有一个新的密钥LSApplicationQueriesSchemes,在这里您将需要添加canOpenURL所在的方案列表。

这样尝试。

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

1
谢谢,伙计 我认为只有在将其构建到iOS9设备上时才有必要。
费利佩2015年

xml复制/粘贴版本请:D?
克里斯托弗·弗朗西斯科

20
为什么iOS的快速入门中没有显示此信息?developers.facebook.com/quickstarts/926602334080849/...
保罗Brewczynski

1
谢谢。您是如何知道的?
Hernan Arber 2015年

1
@PaulBrewczynski我不知道为什么它不在快速入门指南中,但我在这里的文档中找到了它:developer.facebook.com/docs/ios/ios9
TMin

25

如果您使用的是iOS9,那么这对于更新info.plist文件很重要。您只需要执行3个步骤1.转到info.plist。2.添加一个字段,即LSApplicationQueriesSchemes NSArray数据类型。3.添加一个NSString数据类型,名称为fbauth2。

而已。只需清洁并运行即可。警告不会再显示。在此处输入图片说明


我在Xcode 7.1下运行此程序,但使用运行iOS 8.1的iPhone 6 Plus模拟器。这不应该出现吗?
Jerome Chan Yeow Heong 2015年



5

请只是不要将其添加到您的CFBundleURLSchemes ...中,这实际上会阻止任何应用在Facebook auth上的尝试,从而导致弹出窗口显示“ X应用要打开”对话框...

您不想这样做。

cf:

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测试时得到了此信息。所以我不得不一个条件添加到isRegisteredCanOpenURLSchemeFBSDKInternalUtility.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更新其cocopods时,它不会被删除。
user2285278 '16

1

为iOS 9构建应用程序:(对于Facebook分享)

  1. 打开Info.plist文件,添加一个字段 LSApplicationQueriesSchemes信息属性列表,并设置它的数据类型ArrayNSArray
  2. LSApplicationQueriesSchemes添加3 ,并将其数据类型设置为或。StringNSString
  3. 分配fbauth2fbshareextensionfbapi为项目的价值。

跟随这张照片

在此处输入图片说明


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
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.