OStack程序员社区-中国程序员成长平台

标题: ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:25
标题: ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本

Xcode 11 之前,我使用了一个脚本来读取当前应用程序版本(适用于 AppStore)并帮助我更改 LaunchScreen,因为我们不能为此使用 swift。

sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
versionNumber=$(/usr/libexec/PlistBuddy -c "rint CFBundleShortVersionString" "$INFOPLIST_FILE")
buildNumber=$(/usr/libexec/PlistBuddy -c "rint CFBundleVersion" "$INFOPLIST_FILE")

sed -i .bak -e "/userLabel=\"APP_VERSION_LABEL\"/s/text=\"[^\"]*\"/text=\"v$versionNumber\"/" "$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"

但在 Xcode 11 中,项目的build设置中有一个名为 Versioning

的新部分

enter image description here

并且 CFBundleShortVersionString 自动更改为 $(MARKETING_VERSION)。 Xcode 会自动处理它,我不想手动将其更改为静态数字,让 Xcode 完成它的工作。

11

所以问题是如何访问这个新的 MARKETING_VERSION 并使用 run script 将其设置为我的 launchScreen 标签?



Best Answer-推荐答案


Xcode 11/12

您可以在终端项目中的bash脚本中使用:

应用版本

xcodebuild -showBuildSettings | grep MARKETING_VERSION | tr -d 'MARKETING_VERSION ='//会显示 1.1.6

构建版本

xcodebuild -showBuildSettings | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION ='//会显示 7

或者(不要忘记将 YouProjectName 更改为您的项目名称):

应用版本

cat YouProjectName.xcodeproj/project.pbxproj | grep -m1 'MARKETING_VERSION' |剪切-d'='-f2 | tr -d';' | tr -d ' '

构建版本

cat YouProjectName.xcodeproj/project.pbxproj | grep -m1 'CURRENT_PROJECT_VERSION' |剪切-d'='-f2 | tr -d';' | tr -d ' '

较慢的方法(Thx Joshua Kaden):

应用版本

xcodebuild -project YouProjectName.xcodeproj -showBuildSettings | grep "MARKETING_VERSION"| sed 's/[ ]*MARKETING_VERSION =//'

构建版本

xcodebuild -project YouProjectName.xcodeproj -showBuildSettings | grep "CURRENT_PROJECT_VERSION"| sed 's/[ ]*CURRENT_PROJECT_VERSION =//'

关于ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56722677/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4