由于 Xcode 11 已将 Version 更改为 $(MARKETING_VERSION) & Build 为 $(CURRENT_PROJECT_VERSION)
build设置中有新字段
由于xcrun agvtool new-version
xcrun agvtool new-marketing-version
不能像在 Xcode 10 上那样完美地工作
我试过这个 https://stackoverflow.com/a/58164679/7332815但不工作
我只能从中获得正确的值(value)
echo $versionNumber
echo $buildNumber
但是我怎样才能为它设置新的值呢?
最佳答案
好的,我为自己找到了一个解决方案,并感谢 meetup 的一位 friend 。
对于版本号
我用了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版本
我用过 xcrun agvtool new-version xxx
例如xcrun agvtool new-version 3.4.5b
您可以在 Build Phases 中编写这些命令
我不使用的原因 xcrun agvtool new-marketing-version 3.4.5b
是因为它会将实数写入 plist。
我同意曼努埃尔在 Post 中的回答
有了这些,我可以管理多目标的版本控制
附言如果你想这样做,例如,notificationService 目标,记得首先更改版本和构建号手册,让 Xcode 11 将相应的值更改为这样的变量
或者您当然可以通过在源代码中编辑 plist 来实现。
这是迄今为止我实现的管理多目标版本控制的最接近的方法。
关于shell - 如何使用脚本在 Xcode 11 中更改build设置版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585239/