shell - 如何使用脚本在 Xcode 11 中更改build设置版本?

标签 shell versioning xcode11

由于 Xcode 11 已将 Version 更改为 $(MARKETING_VERSION) & Build 为 $(CURRENT_PROJECT_VERSION)

build设置中有新字段

enter image description here

由于
xcrun agvtool new-versionxcrun agvtool new-marketing-version
不能像在 Xcode 10 上那样完美地工作

我试过这个 https://stackoverflow.com/a/58164679/7332815但不工作

我只能从中获得正确的值(value)

echo $versionNumber 
echo $buildNumber

但是我怎样才能为它设置新的值呢?

最佳答案

好的,我为自己找到了一个解决方案,并感谢 meetup 的一位 friend 。

对于版本号
enter image description here
我用了sed -i '' -e 's/MARKETING_VERSION \= [^\;]*\;/MARKETING_VERSION = 3.4.5;/' ${YOUR_PROJECT_NAME}.xcodeproj/project.pbxproj
例如sed -i '' -e 's/MARKETING_VERSION \= [^\;]*\;/MARKETING_VERSION = 3.4.5;/' DemoProject.xcodeproj/project.pbxproj
请注意,这在方案设置的预操作中不起作用

至于Build版本
enter image description here
我用过 xcrun agvtool new-version xxx
例如xcrun agvtool new-version 3.4.5b
您可以在 Build Phases 中编写这些命令

enter image description here

我不使用的原因 xcrun agvtool new-marketing-version 3.4.5b是因为它会将实数写入 plist。

我同意曼努埃尔在 Post 中的回答

有了这些,我可以管理多目标的版本控制

附言如果你想这样做,例如,notificationService 目标,记得首先更改版本和构建号手册,让 Xcode 11 将相应的值更改为这样的变量
enter image description here

或者您当然可以通过在源代码中编辑 plist 来实现。

这是迄今为止我实现的管理多目标版本控制的最接近的方法。

关于shell - 如何使用脚本在 Xcode 11 中更改build设置版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585239/

相关文章:

shell - 如何从 R 或/和 Matlab 运行 shell 脚本?

java - Eclipse (java) 网络服务,哪些文件要版本化以及如何将项目正确地拉到新计算机上?

java - 如何为上传的内容设置任意版本号?

c - 将 'void'传递给不兼容类型 'const char *'的参数?

ios - 使用 swift iOS 13.4 是否有类 CIVibrance 或字符串 "CIVibrance"或方法 CIFilter().vibrance()?

ios - Xcode 11.0-swift 的 Core Plot iOS 编译器错误

bash - 是否有 "echo"命令的替代方法?

bash - 转换行结尾

java - cloud foundry 将路由从一个应用程序复制到另一个应用程序

php - CDN 中的版本控制