【问题标题】:Fabric Crashlytics multiple environments for iOS app适用于 iOS 应用的 Fabric Crashlytics 多环境
【发布时间】:2016-01-13 22:53:18
【问题描述】:

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

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

  • 我的应用
  • MyApp(调试)
  • MyApp (AdHoc)

我的 Run Script Build Phase 有一个条件,它使用不同的 API KeyBuild Secret 运行 Fabric 框架脚本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

【问题讨论】:

  • plist 或应用程序包中的任何文件都是read only,因此您无法将 API 密钥写入 plist !在Build settings 中使用自定义键确实是个好主意。

标签: ios crashlytics twitter-fabric


【解决方案1】:

为了让这个工作我做了这个:

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

运行脚本:

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

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 2018-09-19
    • 2015-06-18
    • 2016-02-25
    • 2019-06-06
    • 2017-04-30
    • 2014-08-30
    • 2017-06-04
    • 2014-11-23
    相关资源
    最近更新 更多