菜鸟教程小白 发表于 2022-12-13 05:25:11

ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本


                                            <p><p>在 <strong>Xcode 11</strong> 之前,我使用了一个脚本来读取当前应用程序版本(适用于 AppStore)并帮助我更改 LaunchScreen,因为我们不能为此使用 swift。</p>

<pre><code>sourceFilePath=&#34;$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard&#34;
versionNumber=$(/usr/libexec/PlistBuddy -c &#34;Print CFBundleShortVersionString&#34; &#34;$INFOPLIST_FILE&#34;)
buildNumber=$(/usr/libexec/PlistBuddy -c &#34;Print CFBundleVersion&#34; &#34;$INFOPLIST_FILE&#34;)

sed -i .bak -e &#34;/userLabel=\&#34;APP_VERSION_LABEL\&#34;/s/text=\&#34;[^\&#34;]*\&#34;/text=\&#34;v$versionNumber\&#34;/&#34; &#34;$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard&#34;
</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]
查看完整版本: ios - 如何使用脚本在 Xcode 11 中读取当前应用程序版本