26

スクリプト実行フェーズから現在のスキームを取得する方法はありますか?

私は試しまし$(SCHEME_NAME)たが、存在しません。

4

4 に答える 4

23

使用する環境変数が見つからなかったので、回避策を開発する必要がありました。Build Pre-actionでスキーマ名をディスクに書き込み、 Run Scriptフェーズでそれを読み戻しました。

関心のあるスキームごとに、[スキームの編集] に移動し、次のコードを含むスクリプトを追加します。

rm -rf ${INTERMEDIATES_OUTPUT_DIR}
mkdir -p ${INTERMEDIATES_OUTPUT_DIR}
echo MY_SCHEME_NAME > ${SCHEME_FILE}

プレアクションを構築する

次に、ビルド ターゲットの [ビルド設定] に移動し、2 つの [ユーザー定義の設定] を追加します。

INTERMEDIATES_OUTPUT_DIR=${PROJECT_DIR}/build/intermediates/${CONFIGURATION}/
SCHEME_FILE=${INTERMEDIATES_OUTPUT_DIR}current_scheme.txt

「実行スクリプト」を開き、これを追加します。

SCHEME_NAME=`cat ${SCHEME_FILE}`

必ず中間ビルド ディレクトリを .gitignore ファイルに追加してください。

明らかに、ファイル名をハードコーディングすることでこれを少し単純化できますが、これはもう少し堅牢です (中間ディレクトリに配置される他のものもあります)。

于 2015-04-11T00:50:05.733 に答える