我们希望将应用程序的当前版本作为字符串放在节Settings.app中我们选项的底部,作为页脚。
我还没有在Xcode中使用过构建脚本,所以我需要一些帮助
谢谢Maciej。
您可以为目标添加运行脚本阶段(构建阶段>添加构建阶段>添加运行脚本)。然后,您将拥有一个Shell脚本,您可以在其中使用PlistBuddy获取版本字符串并将其设置在其他plist中。
例如:
/usr/libexec/PlistBuddy -c "print:CFBundleVersion" "$CONFIGURATION_BUILD_DIR/$INFOPLIST_PATH"
将显示您的应用程序的版本字符串。如果将其记录在变量中,并使用Plist Buddy -c set在另一个plist上设置值,则将完成。
这会给出类似的内容:
versionString=$(/usr/libexec/PlistBuddy -c "print:CFBundleVersion" "$CONFIGURATION_BUILD_DIR/$INFOPLIST_PATH")
/usr/libexec/PlistBuddy -c "Set CURRENT_VERSION_NO $versionString" "$THE_PATH_TO_YOUR_PLIST_FILE"
我从没使用过PlistBuddy -c副本,但是它应该允许您仅一行执行此操作。
随着Xcode 11中的更新,它现在的工作方式如下:
您可以按照以下说明获得版本字符串:
VERSION_STRING=$(xcodebuild -project YourProjectName.xcodeproj -showBuildSettings | grep "MARKETING_VERSION" | sed 's/[ ]*MARKETING_VERSION = //')
您可以通过在VERSION_STRING中进行操作来设置新版本号
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $NEW_VERSION_STRING" "./YourProjectName/Info.plist"
您可以按照以下方式获取内部版本号:
BUILD_NUMBER=$(xcodebuild -project YourProjectName.xcodeproj -showBuildSettings | grep "CURRENT_PROJECT_VERSION" | sed 's/[ ]*CURRENT_PROJECT_VERSION = //')
您可以通过在BUILD_NUMBER中进行操作来设置新的内部版本号>
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $NEW_BUILD_NUMBER" "./YourProjectName/Info.plist"