我是新的脚本。我研究了如何自动增加内部版本号和版本号。我知道如何创建脚本,让XCode在构建应用程序时调用该脚本。但我没有看到任何解决方案可以处理我的任务。
1。使用-AppStore方案时,通过归档增加次要版本。
的 2。按构建增加构建版本。
我找到了Version vs build in XCode 4,我实施了@nekno的解决方案。
在Xcode 4.2中:
加载Xcode项目。 在左侧窗格中,单击层次结构最顶部的项目。这将加载项目设置编辑器。 在中心窗格的左侧,单击TARGETS标题下的应用程序。您需要为每个项目目标配置此设置。 选择Build Phases选项卡。 在右下角,单击Add Build Phase按钮并选择Add Run Script。 拖放新的“运行脚本”阶段,将其移至“复制包资源”阶段之前(当app-info.plist文件与您的应用程序捆绑在一起时)。 在新的Run Script阶段,单独保留Shell:/ bin / sh值。将以下内容复制并粘贴到整数构建号的脚本区域中:
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
在@AlonAmir贡献时,您可以使用以下脚本代替十六进制内部版本号:
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$((0x$buildNumber))
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%X" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
如果您有一个显示版本和构建的设置包,则可以在脚本末尾添加以下内容以更新版本和构建。注意:更改PreferenceSpecifiers值以匹配您的设置。 PreferenceSpecifiers:2表示在plist文件中的PreferenceSpecifiers数组下查看索引2处的项目,因此对于基于0的索引,这是数组中的第三个首选项设置。
productVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root.plist
如果您有适用于iPad和iPad的通用应用程序iPhone,然后您还可以设置iPhone文件的设置:
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root~iphone.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root~iphone.plist
Script-E14D3F9517E94A3300ABC5CA.sh: line 4: 1.0.18 + 1: syntax error: invalid arithmetic operator (error token is ".0.18 + 1")
Command /bin/sh failed with exit code 1
我想这是因为该脚本已经过时了以回答这个问题。我正在使用XCode 4.6.3