2

我刚刚从 pkg 安装了适用于 Facebook 的 SDK 3.7。

我看到我需要为FacebookAppId. 但是我有 2 个应用程序:一个用于测试,一个用于生产。

由于我需要支持 Debug 和 Release 变量,因此我使用了一个 Environment 文件,该文件根据配置值确定值。(调试或发布)

我如何“告诉”SDK 为每种发布类型使用相关的版本,而无需在构建时手动更改它?

我没有检查源代码。只是编译的一个。

有没有办法做到这一点?

4

3 回答 3

1

你可以在这里使用预处理器宏..

如何使用它 :

  1. 转到项目的构建设置。

  2. 搜索“预处理器宏”。在这里定义您的宏,例如用于调试模式的 FBDebugAPPID 和用于发布模式的FBReleaseAPPID 。

  3. 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
    

希望它能解决你的问题。。

于 2013-09-14T04:30:02.007 回答
0

您可以通过添加运行脚本构建阶段来更改 enviornment.plist 变量

在 Xcode 中添加运行脚本构建阶段

  1. 在您的项目中选择您的应用程序目标,然后选择“构建阶段”。
  2. 在菜单栏中,单击“Editor”,选择“Add Build Phase”,然后单击“Add Run Script Build Phase”。
  3. 您现在应该在 Build Phase 选项的中间看到一个 Run Script 部分,如上所示。
  4. 在 Run Script Build Phase 的主体内,粘贴脚本。
#!/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
于 2013-09-13T13:26:21.603 回答
0

这是一个更简单的方法,

最近的 Xcode 项目模板已经为 Debug 构建配置定义了一个 DEBUG=1 宏。

在此处输入图像描述

你可以结合使用它#ifdef

#ifdef DEBUG
    #define FACEBOOK_APP_ID                     @"FB_DEVELOPMENT_ID"

#else
    #define FACEBOOK_APP_ID                     @"FB_PRODUCTION_ID"
#endif
于 2013-09-19T12:27:55.250 回答