适用于iOS应用的Fabric Crashlytics多种环境

时间:2015-10-15 13:00:18

标签: ios crashlytics twitter-fabric

Fabric Crashlytics Advanced Setup中有一个包含多个环境的应用程序部分,建议为每个版本使用单独的组织。

我为每个Build配置创建了3个独立的组织:

  • MyApp
  • MyApp(调试)
  • MyApp(AdHoc)

我的运行脚本构建阶段中有条件运行Fabric框架脚本,其中包含不同的 API密钥构建密钥 strong> s我可以确认条件是正确的,但我仍然没有在我的plist中更新API密钥(我猜测Fabric使用的)。似乎Fabric正在将我的崩溃发送到我使用Fabric应用程序登上的最后一个API密钥/组织。有什么我想念的吗?我知道我可以使用[Crashlytics initWithApiKey:@""],但据我所知,这被视为遗留代码。

这是我的运行脚本构建阶段:

if [ "${CONFIGURATION}" = "Distribution" ]; then
echo "Building Fabric for Distribution."
./Fabric.framework/run dist_api_key dist_build_secret
fi

if [ "${CONFIGURATION}" = "AdHoc" ]; then
echo "Building Fabric for AdHoc."
./Fabric.framework/run adhoc_api_key adhoc_build_secret
fi

if [ "${CONFIGURATION}" = "Debug" ]; then
echo "Building Fabric for Debug."
./Fabric.framework/run debug_api_key debug_build_secret
fi

The original Q/A

1 个答案:

答案 0 :(得分:21)

为了实现这一目标,我做到了这一点:

  1. 将自定义用户定义的设置添加到构建设置,例如MY_CRASHLYTICS_API_KEYMY_CRASHLYTICS_BUILD_SECRET
  2. 使用${MY_CRASHLYTICS_API_KEY}
  3. 替换Fabric组下的 Info.plist 中的具体APIKey
  4. 将您根据环境创建的组织的 API密钥构建密钥添加到步骤1 下的密钥下的构建设置
  5. 将“运行脚本”阶段中的脚本更改为类似下面的
  6. 通过Crashlytics Mac小部件配置应用。这也不是一件容易的事。只有在使用调试配置运行时,应用才会添加到您的组织。原因是应用程序应该保持一段时间并且运行,因此Crashlytics可以跟踪它。这要求我为脚本和Build Settings键更改Api Keys和Build Secrets并注册应用程序。之后,我可以更改 Info.plist 以使用构建设置中的环境变量。
  7. 运行脚本:

    echo "Running Crashlytics (${CONFIGURATION})"
    "${PODS_ROOT}/Fabric/Fabric.framework/run" ${MY_CRASHLYTICS_API_KEY} ${MY_CRASHLYTICS_BUILD_SECRET}