14

Settings.bundle ファイルを使用して iPad アプリケーションを作成しています。アプリケーションのバージョン番号と xcode ボットの統合番号 (バンドルのビルド番号ではない) を表示するビルド スクリプトを作成しています。ウェブを検索しましたが、解決策が見つかりませんでした。これが私がまだ得たものです:

-- Add the app version number
cd $PROJECT_DIR
cd "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app"

RELEASE_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Info.plist)
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue $RELEASE_VERSION" Settings.bundle/Root.plist

-- Add the build version number
BUILD_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" Info.plist)
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:2:DefaultValue $BUILD_NUMBER" Settings.bundle/Root.plist

ビルド バージョン番号で、CFBundleVersion を xcode ボット統合番号に置き換えたいと思います。

4

5 に答える 5

17

Xcodeプロジェクトでシェル スクリプト ビルド フェーズを使用してこれを実装しました。私の場合、統合番号を使用して、構築した製品の内部バージョンを設定しました。私のスクリプトは次のようになります。

if [ "the$XCS_INTEGRATION_NUMBER" == "the" ]; then
    echo "Not an integration build…"
    xcrun agvtool new-version "10.13"
else
    echo "Setting integration build number: $XCS_INTEGRATION_NUMBER"
    xcrun agvtool new-version "$XCS_INTEGRATION_NUMBER"
fi

Xcode サーバーのビルド環境XCS_INTEGRATION_NUMBERにデフォルトで存在することに注意してください。(このスクリプトの目的で) 統合ビルドをシミュレートする場合は、それをカスタム変数としてビルド設定に追加するだけです。

于 2014-09-21T11:01:14.223 に答える
8

実際には、ビルド番号を Xcode ボット統合番号に設定するために agvtool は必要ありません。プロジェクト設定でビルド番号を ${XCS_INTEGRATION_NUMBER} に設定するだけです。

于 2015-07-08T20:53:59.830 に答える
5

ソースのコンパイルステップの直前に、ターゲットのビルド フェーズにスクリプトの実行を (+) 追加しました。この 1 行のスクリプトは、統合番号をビルド番号として設定するのに役立ちます。Kaelin に感謝します。物事を少し単純化したかっただけです。

[ -z "$XCS_INTEGRATION_NUMBER" ] && echo "Build #0" || xcrun agvtool new-version ${XCS_INTEGRATION_NUMBER}
于 2014-12-24T19:59:26.360 に答える
1

私は最近同じ問題に出くわしました。Xcode Bot の実行の最新の統合数に関する情報を取得するには、非常に実用的ですが醜い方法があります。

sudo grep -r "integration =" /Library/Server/Xcode/Logs/xcsbuildd.log | tail -1 | cut -d'=' -f 2| cut -d';' -f 1 |tr -d '\040\011\012\015'

また、この目標を達成するためのより統合されたハックの少ない方法を見つけるために、stackoverflow の質問を作成しました

ただし、上記の xcsbuildd.log を解析する方法で目的が十分に達成できる可能性があります。

于 2014-05-26T18:43:09.893 に答える