Facebook iOS 3.7 FacebookAppId

时间:2013-09-10 12:36:32

标签: objective-c facebook facebook-ios-sdk

我刚从pkg安装SDK 3.7 for Facebook。

我发现我需要为FacebookAppId添加一个值。但是我有2个应用程序:一个用于测试,一个用于生产。

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

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

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

有办法吗?

3 个答案:

答案 0 :(得分:1)

您可以在此处使用预处理器宏..

如何使用它:

  1. 转到项目的构建设置。
  2. 搜索“预处理器宏”。这里定义你的宏,比如用于调试moed&的 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
    
  4. 希望它能解决你的问题..

答案 1 :(得分:0)

您可以通过添加运行脚本构建阶段

来更改enviornment.plist变量

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

  1. 在项目中选择您的应用程序目标,然后选择“Build Phases”。
  2. 在菜单栏中,单击“Editor”,选择“Add Build Phase”,然后单击“Add Run Script Build Phase”。
  3. 您现在应该在Build Phase选项的中间看到Run Script部分,如上所示。
  4. 在“运行脚本构建阶段”的主体内部,粘贴脚本。
  5. #!/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
    

答案 2 :(得分:0)

这是一种更简单的方法,

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

enter image description here

您可以将其与#ifdef

结合使用
#ifdef DEBUG
    #define FACEBOOK_APP_ID                     @"FB_DEVELOPMENT_ID"

#else
    #define FACEBOOK_APP_ID                     @"FB_PRODUCTION_ID"
#endif