ios - iOS 应用的 Fabric Crashlytics 多环境

标签 ios crashlytics twitter-fabric

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

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

  • 我的应用
  • MyApp(调试)
  • 我的应用程序(临时)

我在Run Script Build Phase 中有一个条件,它使用不同的API KeyBuild Secret 运行Fabric 框架脚本s 并且我可以确认条件被正确命中,但我仍然没有在我的 plist 中更新 API key (我猜 Fabric 使用)。似乎 Fabric 正在将我的崩溃发送到我使用 Fabric 应用程序加入的最后一个 API key /组织。有什么我想念的吗?我知道我可以使用 [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. 将自定义用户定义的设置添加到build设置中,例如MY_CRASHLYTICS_API_KEYMY_CRASHLYTICS_BUILD_SECRET
  2. 将 Fabric 组下 Info.plist 中的具体 APIKey 替换为 ${MY_CRASHLYTICS_API_KEY}
  3. 将您根据环境创建的组织中的相应 API key 构建 secret 添加到第 1 步 key 下的build设置
  4. 将运行脚本阶段的脚本更改为如下所示
  5. 通过 Crashlytics Mac 小部件配置应用程序。这也不是一个容易的部分。只有在使用调试配置运行时,应用程序才会添加到您的组织。原因是该应用程序应该保持运行一段时间,以便 Crashlytics 可以追踪到它。这需要我为脚本和build设置 key 更改 Api key 和构建 secret ,并注册应用程序。之后,我能够更改 Info.plist 以使用build设置中的环境变量。

运行脚本:

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

关于ios - iOS 应用的 Fabric Crashlytics 多环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33149253/

相关文章:

android - 长时间空闲后重新初始化 Twitter Fabric android 应用程序

ios - 我在创建一个单例吗?

ios - 在 iOS 中截取整个屏幕

android - Gradle构建jitpack报错android studio

ios - 织物/Crashlytics : 'ANSCompatibility.h' file not found

在 DigitsActivity、DigitsActionBarActivity、FailureActivityDelegateImpl 中报告的 Android 崩溃

ios - Xcode 7.1中的iOS的Crashlytics,在xcode 7中添加框架后引发多个错误

ios - 解析分析自定义事件未注册

ios - 带分页的UITableView,每个cell是一个UIScrollView

ios - 尝试将 Crashlytics 更新到 v3.10.3 时没有此类模块错误