iOS Facebook SDK - 远程定义FacebookAppID

时间:2013-03-22 00:14:27

标签: iphone ios facebook

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

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

2 个答案:

答案 0 :(得分:14)

1.1否,您无法在运行时更改Info.plist文件。

1.2否你无法加载另一个plist文件来覆盖Info.plist中的设置。

2.1是的,您可以通过调用[FBSettings setDefaultAppID:@"Your Facebook App ID"];来定义FacebookApID而无需更改Info.plist文件。请参阅Facebook iOS SDK中FBSettings.h的源代码。

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

答案 1 :(得分:2)

由于多种原因,这是不可能的:

  1. 您不得在运行时修改iOS应用的info.plist文件。
  2. 在尝试发布应用之前,您应该运行一个Facebook应用,但无法从 long 获取ID。你现在如何测试应用程序?
  3. Facebook应用程序ID与应用程序用于完成Facebook的OAuth流程的URL方案相关联。 iOS应用程序的URL方案在info.plist中定义,再次,您无法更改。
  4. 能够随意设置Facebook应用程序ID在某种程度上是一个安全问题,因为它可以轻而易举地构成其他人的Facebook应用程序。
  5. 这些只是我能想到的极少数,我相信还有更多。