构建时使用Xcode脚本更新Settings.bundle中的版本号字符串

问题描述 投票:5回答:2

我们希望将应用程序的当前版本作为字符串放在节Settings.app中我们选项的底部,作为页脚。

我还没有在Xcode中使用过构建脚本,所以我需要一些帮助

  1. 如何获取当前版本,可能是从info.plist中获取
  2. 如何替换静态字符串,例如Settings.bundle内Root.plist中的CURRENT_VERSION_NO

谢谢Maciej。

xcode scripting build settings version
2个回答
5
投票

您可以为目标添加运行脚本阶段(构建阶段>添加构建阶段>添加运行脚本)。然后,您将拥有一个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副本,但是它应该允许您仅一行执行此操作。


0
投票

随着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"
© www.soinside.com 2019 - 2024. All rights reserved.