iTunesConnect TestFlight 的 iOS 应用版本和内部版本号

Posted

技术标签:

【中文标题】iTunesConnect TestFlight 的 iOS 应用版本和内部版本号【英文标题】:iOS app version and build numbers for iTunesConnect TestFlight 【发布时间】:2015-02-11 16:35:25 【问题描述】:

我的问题与 iTunes Connect 中版本和内部版本号的限制有关。我们只允许使用 3 个非负整数,并且内部版本号必须是递增的。

我正在设置 Jenkins 作业以自动将我的构建上传到 iTunes Connect,以便测试人员可以下载它们。

问题:我们如何确保增量内部版本号?即使我们在每次提交之前在 Xcode 中手动更改了它(这似乎是错误的),也有不止一个开发人员在从事该项目,因此我们无法在整个团队中同步我们的提交和增量数字。

很高兴:我的团队在多个分支机构工作。如果我可以在 Build 字段中指定分支名称或其他描述,那将会很有帮助。在独立的试飞中(将于 2015 年 2 月弃用),我们可以上传带有一些字母的构建。

希望能在这里提供一些意见!

如果 iTunes Connect Test Flight 不是分发测试版本的解决方案,那么人们还在使用哪些其他服务?

谢谢!

【问题讨论】:

我最近在一个应用程序上使用了 Apple 测试飞行,我的印象是 Apple 的意图是让开发人员仅将其用于最终的 Beta 测试。让我产生这种印象的原因是,该应用在发布给外部测试人员之前仍然需要经过一个轻量级的审核流程,而您每天只能这样做两次。 我不确定。我打算暂时只将它用于内部测试人员。我仍然怀疑我的流程是否是正确的预期方式。我对拥挤的 iTunes Connect 不太满意,因为我们每天有很多提交/构建... 根据我使用 ITC 的经验,从提交到应用程序准备好供内部测试人员使用大约需要 1 小时。我的应用有点大,350MB,所以也可能会影响处理速度。 感谢您的帮助!我终于设法在 iTunes Connect 上进行构建。耶。但它所花费的时间确实被证明是有问题的。你最终会为你的应用程序使用什么?我们在这里平均每天进行 30 次构建。 我之前使用 HockeyApp 取得了巨大成功。翻转构建要快得多。我曾经使用 testflightapp.com,但现在 Apple 购买了它。 【参考方案1】:

在 Jenkins 中,有一个 $BUILD_NUMBER 参数可以持续工作的生命周期。您可以将其附加到 info.plist 中内部版本号参数的末尾。如果 info.plist 中内部版本号的开头是 3.1。那么你的真实内部版本号变成 3.1.$BUILD_NUMBER 来自 Jenkins。有一个名为 plist_buddy (https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html) 的程序,您可以使用它来编辑 info.plist 文件。

序列中是否存在间隙并不重要,只要它在递增。 3.1。部分将被手动管理,以便首席开发人员在发布开始时增加该部分。这种方法假设您有 1 份工作来进行构建。如果你有多个工作在构建同一个应用程序,你可能会使用 Unix 格式的日期/时间之类的东西,这是一个很大的数字,通常不会倒退。

【讨论】:

谢谢!这是个好主意,应该可以解决问题。我遇到了“缺少代码签名证书”问题,导致我无法上传到 iTunes,所以我还无法验证。 看看这个 Jenkins 插件。它为我节省了很多时间摆弄钥匙串和签名身份:wiki.jenkins-ci.org/display/JENKINS/…

以上是关于iTunesConnect TestFlight 的 iOS 应用版本和内部版本号的主要内容,如果未能解决你的问题,请参考以下文章

iTunes Connect、TestFlight 和 Jenkins

iTunesConnect TestFlight 的 iOS 应用版本和内部版本号

iTunes Connect 用户 Testflight 坏了?

iTunesConnect:无法传输应用程序,因为“您必须关闭要传输的应用程序的 TestFlight Beta 测试”

iTunes connect / Testflight 应用程序总是显示旧版本(即使我们上传新版本到 testflight)

如何修复 TestFlight (iTunes Connect) 中的多个构建错误?