加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 在构建时更新dSYM中的CFBundleShortVersionString?

发布时间:2020-12-14 18:00:12 所属栏目:百科 来源:网络整理
导读:我在我的项目中使用它作为构建阶段: export PLISTBUDDY="/usr/libexec/PlistBuddy"export INFO="${CODESIGNING_FOLDER_PATH}/Info.plist"export RXREVISION=`git describe --tags | perl -pi -E "s/[^-]+-([^-]+).*/1/"`export RXVERSION=`git describe -
我在我的项目中使用它作为构建阶段:

export PLISTBUDDY="/usr/libexec/PlistBuddy"

export INFO="${CODESIGNING_FOLDER_PATH}/Info.plist"
export RXREVISION=`git describe --tags | perl -pi -E "s/[^-]+-([^-]+).*/1/"`
export RXVERSION=`git describe --tags | perl -pi -E "s/([^-]+)-[^-]+.*/1/"`
$PLISTBUDDY $INFO -c "add CFBundleVersion string $RXREVISION"
$PLISTBUDDY $INFO -c "set :CFBundleVersion $RXREVISION"
$PLISTBUDDY $INFO -c "add CFBundleShortVersionString string $RXVERSION"
$PLISTBUDDY $INFO -c "set :CFBundleShortVersionString $RXVERSION"

这非常适合在构建的应用程序的Info.plist中更新构建版本,并且它不会改变我的源代码树.

我已尝试将更新版本脚本放在最后和链接阶段之前.无论哪种方式,它都能够影响对构建的应用程序的更改,但dSYM是从原始源代码树构建的.

构建的应用程序和构建的dSYM之间的版本号不匹配是一个问题. (HockeyApp在这里抛出一个错误.)

如果我在源代码树中更新Info.plist,我需要处理它的变化.这让我有两个选择,我可以看到:

>将Info.plist置于源代码管理之下,让脚本直接编辑它.但这意味着我需要在每次构建后检查更改.
>忽略Info.plist,让脚本直接编辑它.但是在Info.plist中还有很多其他东西我想要在源代码管理下.

如何自动更新dSYM中的版本,而不必处理源代码树中的Info.plist更改每个构建?

另外,切线:我如何在dSYM中看到该版本?

解决方法

dSYM包在根文件夹中也有一个info.plist,其值相似.你也许可以用类似的方式修改它.

另一种选择是在额外的.xcconfig文件中定义版本号,并将info.plist中的版本号包含在其中,参见here.

然后,您还可以通过使用多个独立的info.plist文件并在构建设置中引用不同的.xcconfig文件来确定您想要或发布或测试构建的哪种版本,并且不包括源代码控制下的测试版本.

一般情况下,我建议对每个版本的更改进行提交,因为这样可以使代码真正可重现,并在源代码控制系统中唯一地识别它.

除此之外,Apple指定将CFBundleVersion设置为“单调增加的字符串,由一个或多个周期分隔的整数组成”,见here.CFBundleShortVersionString是您的营销版本,例如您的目标是使用3.0版.

那么如何为发布版本执行以下操作:使用新的内部版本号更新CFBundleVersion,使用新的营销版本(如3.0 Beta 1)更新CFBundleShortVersion并提交它们,然后标记该发布的提交.版本号与任何其他元数据一样是源代码的一部分,特别是如果版本号也用于触发特定代码以实现兼容性,数据库升级或其他事情(通常这样做).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读