如何根据上次批准的 iOS 版本增加版本号
How to increment version number according to last approved iOS version
我知道有 increment_version_number
通道,但它增加了放置在 Info.plist
文件中的版本。这意味着每次上传到 TestFlight 后,开发人员都必须使用新版本更新 Info.plist
文件。
此外,Fastlane 有 get_version_number
通道,但我无法让我的脚本工作,因为它不能像 2.4.1 那样用最后一个数字增加版本。
那么,我如何才能对 TestFlight 中的批准版本(目前为 2.4.1)+1(到最后一位)?
如果您在 Testflight 中已有应用的上传,则必须增加 Version number
或 Build number
(或两者)。
Version number
可以随 increment_version_number
自动递增(如您所述),但您应该指定要递增的内容。
在你的情况下(v2.4.1):主要版本号是 2,次要版本号是 4,补丁是 1.
所以您应该在 building/archiving 应用程序之前的 Fastfile
添加此代码段:
increment_version_number(
bump_type: "patch"
)
但是我不建议自动设置版本号,因为应用程序的版本号取决于您在更新中提供的内容。如果它只是一个错误修复版本或性能优化,则将最后一位数字递增 patch
。如果您添加了一些很酷的新功能,您应该增加 minor
版本。如果更新就像是从头开始重写、完全重新设计或引入了一些重大更改,那么我会增加版本中的 major
数字。总是增加 patch
数字是不优雅的,因为版本号是有意义的。
在我正在处理的项目中,我们过去常常在发布时手动增加版本号,但使用 Fastlane 会自动增加 Build numbers
。
这是我们所做的:
1.) 在项目中启用 Apple Generic Versioning:(Project > Build Settings > Versioning > Versioning System: Apple Generic)
2.) 设置基础版本号:(项目 > 构建设置 > 版本控制 > 当前项目版本:1)
3.) 添加以下简单的 Ruby 助手 class 到 fastlane/utility 文件夹:
changelog_helpers.rb:
class BuildNumberFactory
class << self
def make
`git rev-list HEAD --count`
end
end
end
4.) 将此行添加到 Fastfile
中的第一行:
Dir.glob('./utility/*').each { |file| require file }
5.) FastFile
中的用法:
lane :your_submit_testflight_lane do
increment_build_number build_number: BuildNumberFactory.make
# gym, pilot, other actions after setting the build number
end
此方法假定您使用 Git 进行版本控制。基本上,对于每个提交,Fastlane 都可以分配一个特定的构建号。而且由于您上传的应用程序 Build number
递增,因此 Version number
没有变化也不是问题。
当您要发布应用更新时,我建议:
1.) 在新提交中增加 Version number
(e.x. 2.4.2
),将其推送到远程
2.) 为该提交创建一个 Git 标签
3.) 运行 将构建上传到 Testflight 的 Fastlane 通道
使用上述技术,开发人员在向 Testflight 提交每日测试构建时不必一直更新 Info.plist Version number
。
您只需在发布更新时增加 Version number
- 无论如何都无法避免。
希望对您有所帮助! :)
我知道有 increment_version_number
通道,但它增加了放置在 Info.plist
文件中的版本。这意味着每次上传到 TestFlight 后,开发人员都必须使用新版本更新 Info.plist
文件。
此外,Fastlane 有 get_version_number
通道,但我无法让我的脚本工作,因为它不能像 2.4.1 那样用最后一个数字增加版本。
那么,我如何才能对 TestFlight 中的批准版本(目前为 2.4.1)+1(到最后一位)?
如果您在 Testflight 中已有应用的上传,则必须增加 Version number
或 Build number
(或两者)。
Version number
可以随 increment_version_number
自动递增(如您所述),但您应该指定要递增的内容。
在你的情况下(v2.4.1):主要版本号是 2,次要版本号是 4,补丁是 1.
所以您应该在 building/archiving 应用程序之前的 Fastfile
添加此代码段:
increment_version_number(
bump_type: "patch"
)
但是我不建议自动设置版本号,因为应用程序的版本号取决于您在更新中提供的内容。如果它只是一个错误修复版本或性能优化,则将最后一位数字递增 patch
。如果您添加了一些很酷的新功能,您应该增加 minor
版本。如果更新就像是从头开始重写、完全重新设计或引入了一些重大更改,那么我会增加版本中的 major
数字。总是增加 patch
数字是不优雅的,因为版本号是有意义的。
在我正在处理的项目中,我们过去常常在发布时手动增加版本号,但使用 Fastlane 会自动增加 Build numbers
。
这是我们所做的:
1.) 在项目中启用 Apple Generic Versioning:(Project > Build Settings > Versioning > Versioning System: Apple Generic)
2.) 设置基础版本号:(项目 > 构建设置 > 版本控制 > 当前项目版本:1)
3.) 添加以下简单的 Ruby 助手 class 到 fastlane/utility 文件夹:
changelog_helpers.rb:
class BuildNumberFactory
class << self
def make
`git rev-list HEAD --count`
end
end
end
4.) 将此行添加到 Fastfile
中的第一行:
Dir.glob('./utility/*').each { |file| require file }
5.) FastFile
中的用法:
lane :your_submit_testflight_lane do
increment_build_number build_number: BuildNumberFactory.make
# gym, pilot, other actions after setting the build number
end
此方法假定您使用 Git 进行版本控制。基本上,对于每个提交,Fastlane 都可以分配一个特定的构建号。而且由于您上传的应用程序 Build number
递增,因此 Version number
没有变化也不是问题。
当您要发布应用更新时,我建议:
1.) 在新提交中增加 Version number
(e.x. 2.4.2
),将其推送到远程
2.) 为该提交创建一个 Git 标签
3.) 运行 将构建上传到 Testflight 的 Fastlane 通道
使用上述技术,开发人员在向 Testflight 提交每日测试构建时不必一直更新 Info.plist Version number
。
您只需在发布更新时增加 Version number
- 无论如何都无法避免。
希望对您有所帮助! :)