我刚刚从 pkg 安装了适用于 Facebook 的 SDK 3.7。
我看到我需要为FacebookAppId
. 但是我有 2 个应用程序:一个用于测试,一个用于生产。
由于我需要支持 Debug 和 Release 变量,因此我使用了一个 Environment 文件,该文件根据配置值确定值。(调试或发布)
我如何“告诉”SDK 为每种发布类型使用相关的版本,而无需在构建时手动更改它?
我没有检查源代码。只是编译的一个。
有没有办法做到这一点?
我刚刚从 pkg 安装了适用于 Facebook 的 SDK 3.7。
我看到我需要为FacebookAppId
. 但是我有 2 个应用程序:一个用于测试,一个用于生产。
由于我需要支持 Debug 和 Release 变量,因此我使用了一个 Environment 文件,该文件根据配置值确定值。(调试或发布)
我如何“告诉”SDK 为每种发布类型使用相关的版本,而无需在构建时手动更改它?
我没有检查源代码。只是编译的一个。
有没有办法做到这一点?
你可以在这里使用预处理器宏..
如何使用它 :
转到项目的构建设置。
搜索“预处理器宏”。在这里定义您的宏,例如用于调试模式的 FBDebugAPPID 和用于发布模式的FBReleaseAPPID 。
FBSettings 类用于覆盖默认的 facebook AppId。
然后在您的委托方法中添加以下代码后..
#if defined(FBDebugAPPID)
**Use your debug app id**
[FBSettings setDefaultAppID:@"DEBUGAPPId"]
#elif defined(FBReleaseAPPID)
**Use your release app id**
[FBSettings setDefaultAppID:@"RELEASEAPPId"]
#endif
希望它能解决你的问题。。
您可以通过添加运行脚本构建阶段来更改 enviornment.plist 变量
在 Xcode 中添加运行脚本构建阶段
#!/bin/bash
if [ "${CONFIGURATION}" = "Release" ]; then
/usr/libexec/PlistBuddy -c "Set :FacebookAppID 321" "$INFOPLIST_FILE"
else
/usr/libexec/PlistBuddy -c "Set :FacebookAppID 321" "$INFOPLIST_FILE"
fi
这是一个更简单的方法,
最近的 Xcode 项目模板已经为 Debug 构建配置定义了一个 DEBUG=1 宏。
你可以结合使用它#ifdef
#ifdef DEBUG
#define FACEBOOK_APP_ID @"FB_DEVELOPMENT_ID"
#else
#define FACEBOOK_APP_ID @"FB_PRODUCTION_ID"
#endif