ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本
<p><p>在 <strong>Xcode 11</strong> 之前,我使用了一个脚本来读取当前应用程序版本(适用于 AppStore)并帮助我更改 LaunchScreen,因为我们不能为此使用 swift。</p>
<pre><code>sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
buildNumber=$(/usr/libexec/PlistBuddy -c "Print 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"
</code></pre>
<p>但在 <strong>Xcode 11</strong> 中,项目的build设置中有一个名为 <strong>Versioning</strong></p> 的新部分
<p> <a href="/image/Wmqta.png" rel="noreferrer noopener nofollow"><img src="/image/Wmqta.png" alt="enter image description here"/></a> </p>
<p>并且 <code>CFBundleShortVersionString</code> 自动更改为 <code>$(MARKETING_VERSION)</code>。 Xcode 会自动处理它,<strong>我不想手动将其更改为静态数字</strong>,让 Xcode 完成它的工作。</p>
<p> <a href="/image/ddaFI.png" rel="noreferrer noopener nofollow"><img src="/image/ddaFI.png" alt="11"/></a> </p>
<p>所以问题是如何访问这个新的 <code>MARKETING_VERSION</code> 并使用 <strong>run script</strong> 将其设置为我的 launchScreen 标签?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p><strong>Xcode 11/12</strong></p>
<p>您可以在<strong>终端</strong>或<strong>项目中的bash脚本</strong>中使用:</p>
<p><strong>应用版本</strong></p>
<p><code>xcodebuild -showBuildSettings | grep MARKETING_VERSION | tr -d 'MARKETING_VERSION ='//会显示 1.1.6</code></p>
<p><strong>构建版本</strong></p>
<p><code>xcodebuild -showBuildSettings | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION ='//会显示 7</code></p>
<p>或者(<em>不要忘记将 <strong>YouProjectName</strong> 更改为您的项目名称</em>):</p>
<p><strong>应用版本</strong></p>
<p><code>cat YouProjectName.xcodeproj/project.pbxproj | grep -m1 'MARKETING_VERSION' |剪切-d'='-f2 | tr -d';' | tr -d ' '</code></p>
<p><strong>构建版本</strong></p>
<p><code>cat YouProjectName.xcodeproj/project.pbxproj | grep -m1 'CURRENT_PROJECT_VERSION' |剪切-d'='-f2 | tr -d';' | tr -d ' '</code></p>
<p>或<strong>较慢的方法</strong>(Thx <a href="https://stackoverflow.com/users/1537816/joshua-kaden" rel="noreferrer noopener nofollow">Joshua Kaden</a>):</p>
<p><strong>应用版本</strong></p>
<p><code>xcodebuild -project YouProjectName.xcodeproj -showBuildSettings | grep "MARKETING_VERSION"| sed 's/[ ]*MARKETING_VERSION =//'</code></p>
<p><strong>构建版本</strong></p>
<p><code>xcodebuild -project YouProjectName.xcodeproj -showBuildSettings | grep "CURRENT_PROJECT_VERSION"| sed 's/[ ]*CURRENT_PROJECT_VERSION =//'</code></p></p>
<p style="font-size: 20px;">关于ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/56722677/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/56722677/
</a>
</p>
页:
[1]