【问题标题】:iOS Facebook SDK - define FacebookAppID remotelyiOS Facebook SDK - 远程定义 FacebookAppID
【发布时间】:2013-03-11 17:30:19
【问题描述】:

使用 iOS Facebook SDK 3.0,需要在应用的 info.plist 中定义 FacebookAppID 和相关的 URL Scheme。我想远程定义这些(向我自己的服务器请求应用程序 ID)。所以两个不同的问题:

  1. 我可以在运行时更改应用程序的 info.plist 吗?或者我可以定义 FacebookApID 和 URL Scheme 在另一个 plist 中,我可以更改 plist 甚至创建新的自定义 plist 文件?
  2. 除了使用 info.plist Facebook SDK 3.0 ?

【问题讨论】:

    标签: iphone ios facebook


    【解决方案1】:

    1.1 不,您不能在运行时更改 Info.plist 文件。

    1.2 不,您不能加载另一个 plist 文件来覆盖 Info.plist 中的设置。

    2.1 是的,您可以在不更改 Info.plist 文件的情况下定义 FacebookApID,方法是调用 [FBSettings setDefaultAppID:@"Your Facebook App ID"]; 参见 Facebook iOS SDK 中 FBSettings.h 的源代码。

    2.2 不可以,URL Scheme 必须在 Info.plist 中定义,这样 iOS 才能识别它。我相信 iOS 在安装您的应用程序时会读取 URL 方案,并将其缓存在系统的其他位置。即使您可以更改 Info.plist,系统也不会选择您的新 URL Scheme。但别担心,Facebook 身份验证有一种解决方法,无需使用 URL 方案!我们可以强制 Facebook iOS SDK 使用 UIWebView 登录,见this stackoverflow question

    【讨论】:

    • 解决方案2.1的问题是' *** Terminating app due to uncaught exception 'InvalidOperationException', reason: 'fb123123123123 is not registered as a URL scheme.请将其添加到您的 Info.plist 中。但是 #import 和 [FBSDKSettings setAppID:@"123123123123"];工作正常
    • @WINSergey 看来您使用的是 Facebook SDK 4+,这个答案是 3 年前为 Facebook SDK 3 编写的。
    • @hohanghk 我知道。只需添加关于时下的评论)
    【解决方案2】:

    这是不可能的,原因有很多:

    1. 不允许在运行时修改 iOS 应用的 info.plist 文件。
    2. 您应该有一个 Facebook 应用程序正在运行,但在您尝试发布您的应用程序之前,您无法从 long 获取 ID。您现在如何测试该应用?
    3. Facebook 应用程序 ID 与应用程序用来完成 Facebook 的 OAuth 流程的 URL 方案相关联。 iOS 应用的 URL 方案在 info.plist 中定义,同样,您无法更改。
    4. 能够任意设置 Facebook 应用程序 ID 在某种程度上是一个安全问题,因为它会使冒充他人的 Facebook 应用程序变得微不足道。

    这些只是我能想到的一小部分,我相信还有更多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多