私は新しいbe shスクリプトです。ビルド番号とバージョン番号を自動的に増やす方法について調査しました。私はスクリプトを作成する方法を知っており、アプリをビルドするときに XCode がそのスクリプトを呼び出せるようにします。しかし、私の仕事を処理できる解決策はありません。
私の質問は:
次の 2 つのことの両方を実行できる既存のスクリプトはありますか?
1. -AppStore スキームを使用する場合、アーカイブによってマイナー バージョンを増やします。
2. ビルドごとにビルド バージョンを増やします。
PS
Version vs build in XCode 4を見つけました。@nekno のソリューションを実装しました。
Xcode 4.2 の場合:
Xcode プロジェクトをロードします。左側のペインで、階層の最上部にあるプロジェクトをクリックします。これにより、プロジェクト設定エディターが読み込まれます。中央のウィンドウ ペインの左側で、TARGETS 見出しの下にあるアプリをクリックします。プロジェクト ターゲットごとにこの設定を構成する必要があります。[ビルド フェーズ] タブを選択します。右下にある [ビルド フェーズの追加] ボタンをクリックし、[実行スクリプトの追加] を選択します。新しい Run Script フェーズをドラッグ アンド ドロップして、Copy Bundle Resources フェーズの直前 (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 が貢献したように、16 進ビルド番号の代わりに次のスクリプトを使用できます。
#!/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 ベースのインデックスの場合、それは配列の 3 番目の設定です。
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 と 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 を使用しています