Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS应用程序的Fabric Crashlytics多环境_Ios_Crashlytics_Twitter Fabric - Fatal编程技术网

iOS应用程序的Fabric Crashlytics多环境

iOS应用程序的Fabric Crashlytics多环境,ios,crashlytics,twitter-fabric,Ios,Crashlytics,Twitter Fabric,中有一个“具有多个环境的应用程序”部分,建议对每个版本使用单独的组织 我为每个构建配置创建了3个独立的组织: MyApp MyApp(调试) MyApp(临时) 我在运行脚本构建阶段有一个条件,它使用不同的API键和构建秘密运行Fabric framework脚本,我可以确认该条件是否正确,但我仍然没有在plist中更新API键(我猜Fabric使用的是)。Fabric似乎正在将我的崩溃发送到我使用Fabric应用程序登录的最后一个API密钥/组织。有什么我遗漏的吗?我知道我可以使用[Cra

中有一个“具有多个环境的应用程序”部分,建议对每个版本使用单独的组织

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

  • MyApp
  • MyApp(调试)
  • MyApp(临时)
我在运行脚本构建阶段有一个条件,它使用不同的API键和构建秘密运行Fabric framework脚本,我可以确认该条件是否正确,但我仍然没有在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

为了使这项工作正常进行,我做了以下工作:

  • 将自定义用户定义的设置添加到生成设置中,例如
    MY\u CRASHLYTICS\u API\u KEY
    MY\u CRASHLYTICS\u Build\u SECRET
  • 将结构组下的Info.plist中的具体APIKey替换为
    ${MY\u CRASHLYTICS\u API\u KEY}
  • 在步骤1的密钥下,根据环境添加您创建的组织的相应API密钥s和Build Secrets以生成设置
  • 将运行脚本阶段中的脚本更改为如下所示
  • 通过Crashlytics Mac小部件配置应用程序。这也不是一个容易的部分。应用程序仅在使用调试配置运行时添加到您的组织。原因是该应用程序应该保持一段时间运行,以便Crashlytics能够追踪到它。这需要我更改Api密钥和脚本以及构建设置密钥的构建机密,并注册应用程序。在此之后,我可以更改Info.plist以使用构建设置中的环境变量
  • 运行脚本:

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

    plist
    或应用程序捆绑包中的任何文件都是
    只读的
    ,因此您无法将API密钥写入plist!在
    构建设置中使用自定义键确实是一个好主意。