[解決済み] Xcodeでビルド構成に基づいて条件付きでファイルをインクルードするにはどうすればよいですか?
質問
多数のターゲットを持つ Xcode プロジェクトがあり、Ad-hoc および Debug 構成の下で構築されたアプリのための設定バンドルを含めたいのですが、Release 構成の下では含められません。
ビルド フェーズは、それ自体を構成に条件付けることはできないようです (明らかにターゲットに条件付けることができますが、プロジェクト内のターゲットの数を 2 倍にすると完全に使用できなくなります)。
それはカスタム ビルド ルールを書くことを残します。私の計画は、すべてのターゲットから Settings.bundle を除外し、条件付きでそれを製品パッケージにコピーするビルド ルールを作成することですが、適用可能な例を見つけるのは本当に困難です。
私が開始したビルド ルールは、プロセス設定を "名前が一致するソース ファイル:" に設定し、名前として Settings.bundle を指定します。Using 設定は "カスタム スクリプト:" です。
私のカスタム スクリプトは次のとおりです (私の bash スクリプトはカーゴ カルト レベルであることをお断りしておきます)。
if [${CONFIGURATION} = 'Debug'] then
cp -r ${INPUT_FILE_PATH} ${DERIVED_FILES_DIR}/.
fi
最後に、私は
${DERIVED_FILES_DIR}/Settings.bundle
を出力ファイルとしてリストアップしました。
私がここにいるので、それが動作していないことは明らかであるべきです。私の最初の質問は、1) 実際に実行されていること、2) どこかにくだらない構文エラーがないことを確認するために、実行中に構築ルールの出力を見ることができる場所があるかどうかということです。
また、出力をコピーするための適切な場所 (環境変数の形で) は何ですか?
どのように解決するのですか?
やっと解けました。
設定バンドルを条件付きで含めたい各ターゲットについて、ソース リストからそのプロジェクトを選択し、ターゲットを選択し、"Build Phases" タブに切り替えます。
ビルドフェーズの追加]ボタンをクリックし、[実行スクリプトの追加]を選択します。
次に、スクリプトに以下を入力します。
if [ "${CONFIGURATION}" == "Debug" ]; then
cp -r "${PROJECT_DIR}/Settings.bundle" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app"
fi
関連
-
[解決済み] Xcode 4で「既存のフレームワークを追加」する方法は?
-
[解決済み] プロジェクト内の単一ファイルのARCを無効にするにはどうしたらいいですか?
-
[解決済み] Xcode DMGまたはXIPファイルをダウンロードする方法は?
-
[解決済み] Xcode プロジェクトのための Git 無視ファイル
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] Xcodeで複数行のインデントを行うにはどうすればよいですか?
-
[解決済み] Xcodeの警告。"出力ファイルに対する複数のビルドコマンド"
-
[解決済み] Xcodeソース自動組版
-
[解決済み] Xcodeでベクター画像はどのように動作しますか(例:pdfファイル)?
-
[解決済み] xcode 8 サービスデリゲート(SBMainWorkspace)によって拒否されるエラーが発生しました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
原因究明:画像が見つからない
-
[解決済み] ファイルへ移動...】はありますか?
-
[解決済み】Xcode 10、UIエレメントはどこにありますか?
-
[解決済み】Xcode 6がアーカイブを送信する際にクラッシュします。
-
[解決済み] スウィフト 理解する // MARK
-
[解決済み] xcode 8 サービスデリゲート(SBMainWorkspace)によって拒否されるエラーが発生しました。
-
[解決済み] iconutilを使用して手動でicnsファイルを作成する方法は?
-
[解決済み] xcode 4のプロジェクトと実際のフォルダの名前を変更する
-
[解決済み] 既存のXcodeプロジェクトでGitを使用する
-
[解決済み] Xcodeの起動画面を再び表示させるには?