カスタム スクリプトを使用して、アプリをビルドして実行するときに app-info.plist の CFBundleVersion を更新します。この情報は、アプリでもアプリ名とバージョンを表示するために使用されます。アップデートはビルド プロセスでは正常に機能しますが、残念ながらアプリ自体で古い情報が読み取られます。
たとえば、アプリをビルドして実行すると、 app-info.plist が更新され、CFBundleVersion
値8
が になりましたが、シミュレーターでは値7
が表示されます。
更新された app-info.plist はビルド プロセスでは使用されず、代わりに古いバージョンが使用されるようです。
更新された app-info.plist がアプリで使用されていることを確認するにはどうすればよいですか? ビルド プロセスの最初にスクリプトを実行するか、ビルド プロセスで app-info.plist を更新する必要があります。しかし、両方について、私はこれを行う方法がわかりません...
[Project] > [Buildphases] > [Add Build Phases] > [Add Run Script] の下にカスタム スクリプトを追加しました。以下の内容で:
shell: /bin/bash Tools/addVersionNumber.sh
Tools/addVersionNumber.sh -> 希望どおりに動作します
#/bin/bash
# script that should be executed in the build phase
# to set the build number correct
plist="app-folder/app-Info.plist"
## get git information
# git_rev_full_hash=$( git rev-parse HEAD )
git_amount_commits=$( git rev-list HEAD | wc -l )
git_rev_short_hash=$( git rev-parse --short HEAD )
buildRevision="$git_amount_commits: $git_rev_short_hash"
# set build revision ( git short hash - amount of commits )
/usr/libexec/PlistBuddy -c "Set :BuildRevision $buildRevision" $plist""
## build number
buildNumber=$( /usr/libexec/PlistBuddy -c "Print CFBundleVersion" $plist )
buildNumber=$(( $buildNumber + 1 ))
# set new build number
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" $plist
乾杯 -- ジェリック