Xcode11 shell脚本获取不到版本号问题

在Xcode 11之前 ,我使用了一个脚本来读取当前应用程序版本(适用于AppStore)并帮助我更改LaunchScreen,动态获取版本号:

#用脚本获取info.plist里面的版本字段
versionNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "./目录/info.plist");
#我在LaunchScreen.storyboard里面拖了一个UILabel进去,取名为AppVersion
sed -i bak -e "/userLabel=\"AppVersion\"/s/text=\"[^\"]*\"/text=\" $versionNumber\"/" ./目录/LaunchScreen.storyboard;

但是在Xcode 11中 ,项目的构建设置中有一个新的部分称为Versioning
并且CFBundleShortVersionString自动更改为$(MARKETING_VERSION) 。 Xcode会自动处理该问题, 我不想手动将其更改为静态数字 ,而是让Xcode进行处理。
经过一番探索发现,可以像使用其他任何项目变量一样使用它:

sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
versionNumber="$MARKETING_VERSION"
buildNumber="$CURRENT_PROJECT_VERSION"

sed -i .bak -e "/userLabel=\"APP_VERSION_LABEL\"/s/text=\"[^\"]*\"/text=\"v$versionNumber\"/" "$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容