如何使用 Facebook iOS SDK 管理生产和开发凭据

How to manage production and development credentials using Facebook iOS SDK

症状

我的应用程序使用 Facebook 让用户登录。它在从 XCode 调试和通过 AdHoc 部署进行测试时工作正常,为了让外部测试人员提交我们的应用程序以供审核,但似乎 Facebook在 OAuth 过程中抱怨 "App Not Setup: The developers of this app have not setup this app properly for Facebook Login".

假设

我在 XCode 中的目标 info 部分的 Custom iOS target properties 中出现的 FacebookDisplayNameFacebookAppId 与 Facebook 应用程序开发版本相匹配。不知何故,SDK 必须在审查期间检测到该应用程序不再处于开发阶段并且发生了错误。

问题

如何在该目标中定义一些具有不同 releasedebug 值的 Custom iOS target properties

您可以在 Target 的设置中为每个方案(调试、发布、Ad-Hoc、AppStore 等)添加不同值的用户定义设置,并在 info.plist 文件中使用用户定义的变量(或者您称之为自定义 iOS 目标属性)。

这是我如何为应用程序的包标识符执行此操作的示例。我想要 Debug 和 AdHoc 版本的单独包标识符和服务器 URL,以便可以在同一设备上安装和测试两者:

  1. 在目标设置中将所需数据添加为用户定义的设置。

  2. 为不同的方案设置不同的变量值。 (确保检查目标设置反映了更改而不仅仅是项目设置。):

编辑: 添加用户定义设置的详细图像:

  1. 在上图中,BUNDLE_ID_PREFIX和BUNDLE_ID_SUFFIX对于每个方案有不同的值。

  2. 使用此变量代替 info.plist 中的默认值:

默认情况下,您将为 运行 来自 xcode 的应用程序使用调试方案。如果您使用发布方案来存档要上传的应用程序,它会自动从目标设置中选取正确的值。