Crashlytics:由于错误无法打包源

Jim*_*med 5 continuous-integration ios crashlytics xcode-bots xcode-server

我正在设置一个 Xcode Bot 来自动上传和分发我的测试版应用程序。我已经设置了 macOS 服务器和 Xcode 激活的 mac,并且能够手动构建和导出 IPA。我创建的 Xcode Bot 也可以毫无问题地存档和导出 IPA。

但是,当我尝试在 Xcode Bot 的 post 触发器中运行 Crashlytics 提交脚本时,上传失败。但是如果我保存机器人生成的 IPA 并通过终端手动调用 Crashlytics 脚本,它上传就好了。似乎只有 Xcode Bot 无法提交给 Crashlytics。

我在服务器 Keychain 上安装了所有正确的证书,并且在 Xcode 和使用 Xcode Bot 生成的 IPA 中手动存档/导出一切正常。

这是来自 Xcode Bot 的日志:

2016-11-22 17:15:53.942 submit Crashlytics: Crashlytics.framework/submit 1.3.5 (18)
2016-11-22 17:16:03.125 submit Crashlytics: Unable to package source due to error: Error Domain=CLSIPABuilderErrorDomain Code=-6 "(null)" UserInfo={UnderlyingError=Error Domain=CLSCodeSignerErrorDomain Code=-2 "(null)" UserInfo={arguments=(
    "--sign",
    ACFE8B8E177196BFF1974841752020FE96687508,
    "--all-architectures",
    "--force",
    "--entitlements",
    "/var/folders/81/5t89fdcn3h3680gh99mgvl7934dkfg/T/com.crashlytics.ipas/E357A31C-B1A2-424B-8A5A-E7D499A92C73/Payload/entitlements.xml",
    "/var/folders/81/5t89fdcn3h3680gh99mgvl7934dkfg/T/com.crashlytics.ipas/E357A31C-B1A2-424B-8A5A-E7D499A92C73/Payload/Ebates Beta.app"
), environment={
    "CODESIGN_ALLOCATE" = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate";
}, status=1, stderr=ACFE8B8E177196BFF1974841752020FE96687508: no identity found
, command=/usr/bin/codesign, stdout=}, SourcePath=/var/folders/81/5t89fdcn3h3680gh99mgvl7934dkfg/T/com.crashlytics.ipas/E357A31C-B1A2-424B-8A5A-E7D499A92C73}
2016-11-22 17:16:03.187 submit Crashlytics: Failed to prepare the binary for release
Run Code Online (Sandbox Code Playgroud)

一整天都在拉我的头发,希望有人能对这个问题有所了解。

Jim*_*med 1

好吧,事实证明您需要直接从服务器计算机上的 Xcode 在设备上运行应用程序,以便 Xcode 会自动生成所有适当的XC iOS配置文件。显然,Crashlytics 脚本将重新打包 IPA,并且需要有效的配置文件才能执行此操作。我认为 Xcode Bot 会生成一个 IPA,但在您从机器人结果中保存之前它没有完全代码签名,而不是仅仅从机器人后触发中运行。

如果您访问developer.apple.com 门户并在“配置配置文件”下查看,您应该会看到如下内容: 在此输入图像描述