在 Xcode 11 之前,我使用了一个脚本来读取当前应用程序版本(针对 AppStore)并帮助我更改 LaunchScreen,因为我们不能为此使用 swift。
sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
buildNumber=$(/usr/libexec/PlistBuddy -c "Print 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
并且 CFBundleShortVersionString
自动更改为 $(MARKETING_VERSION)
。 Xcode 会自动处理该问题,我不想手动将其更改为静态数字,让 Xcode 完成它的工作。
所以问题是我如何访问这个新的 MARKETING_VERSION
并使用 run script 将它设置到我的 launchScreen 标签?
最佳答案
Xcode 11/12
在终端或项目中的bash脚本中,您可以使用:
应用版本
xcodebuild -showBuildSettings | grep 营销版本 | 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/