使用agvtool进行自动版本管理

Xcode 11改变了版本处理方式。

到目前为止,我有两个目标,Dev&Prod,每个目标都有单独的版本。产品版本将完全是手动的,开发版本将是自动化的:

  • 在构建期间,将运行一个脚本,然后该脚本将获取git标签。一个标签将包含有关最新Dev版本的信息。如果是较新版本,它将仅针对开发目标更新Info.plist中的版本
  • 如果将使用脚本部署Dev(创建一个IPA,辞职以进行内部分发,上传),则将增加构建版本。包含版本信息的远程标签随后将被更新

通过这种方式,每个人的开发版本都将自动同步,并且管理多个开发版本将变得很容易。产品的更新频率相对较低,因此可以手动进行管理。

但是,在Xcode 11中,只要在“常规”标签中更新了版本(或内部版本),Info.plist中的条目就会被$(CURRENT_PROJECT_VERSION)$(MARKETING_VERSION)以及Current Project Version和{而是使用“构建设置”标签中的{1}}。

到目前为止,我将使用Marketing Version来读取和更新PlistBuddy中的版本,但是从现在的理解来看,我不得不使用Info.plist。但是,它有两个问题:

  • 如果作为“运行脚本”阶段运行,则会导致构建过程取消
  • 它无法处理两个目标的单独版本(因此我不能仅在离开Prod的情况下自动管理Dev)

我知道从理论上讲,我仍然可以使用agvtool进行版本控制,但是当有人在“常规”选项卡中手动更改版本时,整个事情都会搞砸了(根据我的经验,这会发生)。 / p>

我有两个问题:

  • 我对流程的理解正确吗?
  • 仍然可以使用与以前类似的使用Info.plist的版本管理系统吗?
yjr1119 回答:使用agvtool进行自动版本管理

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3147351.html

大家都在问