4

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

  1. 我可以在运行时更改应用程序的 info.plist 吗?或者我可以在另一个 plist 中定义 FacebookApID 和 URL Scheme,我可以在其中更改 plist 甚至创建新的自定义 plist 文件?
  2. 除了使用 info.plist for Facebook SDK 3.0 之外,还有其他方法来定义 URL Scheme 和 App ID 吗?
4

2 回答 2

14

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

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

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

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

于 2013-07-20T14:41:49.360 回答
2

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

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

这些只是我能想到的少数几个,我相信还有更多。

于 2013-03-22T03:13:00.867 回答