How to change build setting versioning in Xcode 11 using script?

点点圈 提交于 2019-12-11 04:10:52

问题


Since Xcode 11 had change Version to $(MARKETING_VERSION) & Build to $(CURRENT_PROJECT_VERSION)

there are new field in build setting

How can I change this value with script due to

xcrun agvtool new-version

xcrun agvtool new-marketing-version

not work perfectly as it on Xcode 10

I tried this one https://stackoverflow.com/a/58164679/7332815 but not working

I can only get correct value from

echo $versionNumber 
echo $buildNumber

but how can I set new value to it?


回答1:


okey I find a solution for myself, and thanks to an friend from meetup.

for Version number I used sed -i '' -e 's/MARKETING_VERSION \= [^\;]*\;/MARKETING_VERSION = 3.4.5;/' ${YOUR_PROJECT_NAME}.xcodeproj/project.pbxproj

e.g. sed -i '' -e 's/MARKETING_VERSION \= [^\;]*\;/MARKETING_VERSION = 3.4.5;/' DemoProject.xcodeproj/project.pbxproj

note that this can't work in pre-action of scheme setting

As for Build version I used xcrun agvtool new-version xxx

e.g. xcrun agvtool new-version 3.4.5b

you can write these command in Build Phases

the reason I don't use xcrun agvtool new-marketing-version 3.4.5b is because it will write solid number into plist.

And I agree with Manuel's answer in Post

With these I can manage multi-targets' versioning

p.s. If you want to do that to, for example, notificationService target, remember to change version and build number manual at first to make Xcode 11 change the corresponding value to an variable like this

or you can make that by edit plist in source code of course.

That's the closest method I achieve to manage multi-target versioning so far.



来源:https://stackoverflow.com/questions/58585239/how-to-change-build-setting-versioning-in-xcode-11-using-script

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!