在 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 的新部分
并且 CFBundleShortVersionString 自动更改为 $(MARKETING_VERSION) 。 Xcode 会自动处理它,我不想手动将其更改为静态数字,让 Xcode 完成它的工作。
所以问题是如何访问这个新的 MARKETING_VERSION 并使用 run script 将其设置为我的 launchScreen 标签?
Best Answer-推荐答案 strong>
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/
|