2

プロジェクトのターゲットに実行スクリプトとして保存された次のスクリプトがあります。

git_output=$(git status | grep "nothing to commit, working directory clean")
if [[ -z "$git_output" ]]; then
    xcrun agvtool next-version -all
fi

保留中の変更があるかどうかを確認するために git リポジトリをチェックし、その場合はプロジェクトのビルド番号をインクリメントします。それはすべてうまくいきます。

問題は、KIF テストを実行しているときに、ビルド番号を変更すると KIF テストの実行が混乱するため、シミュレーターを起動して実行することができなくなることです。そのようなビルド番号の増分が発生しない場合、KIF テストは正常に実行されることを確認しました。

これを行う最も簡単な方法は、Xcode 内で、特定のスキームを実行しているときに特定のスクリプトを実行しないように指定することです。さらに、スクリプト自体からどのスキームが実行されているかを照会できれば、同じことを達成できます。しかし、私はそれらのいずれかを行う方法を知りません。

4

1 に答える 1

1

スキームで選択した独自の「テスト」ビルド構成を追加できます。このビルド構成では、独自のGCC_PREPROCESSOR_DEFINITIONS.

スクリプトから、 でこれらにアクセスできます{GCC_PREPROCESSOR_DEFINITIONS}

needle="NO_BUILD=1"
haystack="${GCC_PREPROCESSOR_DEFINITIONS}"
if [[ "$haystack" =~ "$needle" ]]; then
  echo "Test Build. Do not increase build number." >> ~/Desktop/Test.txt
else
  echo "Not a test build" >> ~/Desktop/Test.txt
fi

このビルド設定を特定のスキームでのみ設定するには、次の手順に従います。

  1. 構成を作成します。

構成を作成する

  1. この構成のビルド設定を設定します。

この構成のビルド設定を設定します

  1. スキームを編集し、構成を選択します。

スキームの構成を選択します

于 2014-11-11T18:27:50.830 に答える