xcode – 在构建时更新dSYM中的CFBundleShortVersionString?
我在我的项目中使用它作为构建阶段:
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置于源代码管理之下,让脚本直接编辑它.但这意味着我需要在每次构建后检查更改. 如何自动更新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并提交它们,然后标记该发布的提交.版本号与任何其他元数据一样是源代码的一部分,特别是如果版本号也用于触发特定代码以实现兼容性,数据库升级或其他事情(通常这样做). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |