如何通过 CI 处理 Firebase 测试实验室 ios 测试的代码签名?

Posted

技术标签:

【中文标题】如何通过 CI 处理 Firebase 测试实验室 ios 测试的代码签名?【英文标题】:How to handle code signing for ios testing on Firebase Test Lab through CI? 【发布时间】:2019-01-30 21:52:59 【问题描述】:

没有太多关于测试实验室测试的 ios 方面的文档,尤其是关于 ci。我目前正在尝试在 ci (bamboo) 上的测试实验室进行测试,但对 ios 的所有事情并不精通,我发现自己想知道最好的方法是。

首先,签名是一个大问题。似乎最简单的签名方法是使用开发人员证书,但我想知道分发证书或企业证书是否更合适。当尝试与其中任何一个签名时,我得到了错误。阅读这些证书几乎让我确信它们更倾向于发布而不是测试。但他们不会与用户绑定的事实很有吸引力。哪个证书最好使用,为什么?

至于实际实现,我正在考虑使用 fastlane firebase 插件,但不确定除了简单地使用脚本之外是否还有其他选择。

任何信息将不胜感激。

更新:

我们决定选择使用标准 iOS 开发人员证书,该证书已分配给我们机器的一般帐户。使用此证书,我们能够对生成的构建进行签名,然后使用 Firebase Fastlane 插件将其发送到 Firebase。理想情况下,我们希望使用企业或分发证书进行签名,以避免在我们的机器上存在开发者证书,但仍然希望听到是否有人知道如何执行此操作:)

【问题讨论】:

【参考方案1】:

开发者证书很好。测试实验室在运行测试时无论如何都会退出应用程序。

一些 CI 系统已经提供了与 Test Lab 的集成。如果没有,您可以考虑一些客户端应用程序。排名不分先后:

gcloud,第一方支持 flank,拥有活跃开发者的第 3 方测试运行者 Fastlane,AFAIK 提供多个 3rd 方插件。

【讨论】:

感谢您的评论!这带来了很多澄清(:我还不够酷,无法投票:p 重要的是要注意 Xcode 11 现在似乎通​​过将 .xctrunner 附加到 UI 测试目标包 ID 的末尾来编辑包标识符。有一些解决方法,但是当您表面上签名正确但仍然失败时可能会令人沮丧:github.com/appium/appium/issues/13086#issuecomment-559488669

以上是关于如何通过 CI 处理 Firebase 测试实验室 ios 测试的代码签名?的主要内容,如果未能解决你的问题,请参考以下文章

通过 Firebase UI 使用 Firebase 测试实验室电话身份验证

我如何在Android应用上运行自动机器人测试?就像Firebase测试实验室上的那个]] << [

如何检测Firebase测试实验室中的运行情况

Firebase 测试实验室是不是支持 iOS XCUITests 附件?

在 AWS Device Farm、Saucelabs、Firebase 测试实验室等中运行 Flutter 集成测试

由于 APK 正在重新签名,Firebase 服务无法与 Firebase 测试实验室设备一起使用