2011-02-22 3 views
2

設定スイッチを使用してアプリケーションのリリースビルドにリソースが含まれていないことを確認する簡単な方法はありますか?グラフィックはデバッグビルドにのみ含まれますか?

リリースビルドでは一度も使用されていませんが、その性質を考えれば、それを含めなくてもいいです。ソフトウェアのバグを表現するためによく使用されるイメージを含めると、店舗排除の餌のように思えます。

明確化:アプリケーションでイメージを使用しない方法を知っています。私がしたいのは、リリース構成用にビルドするときに.appバンドルにイメージがないことを確認することです。 App Storeの査読者がバンドルをブラウズして、「ねえ、バグのアイコン!どうすればそれを表示できますか?わからないので、秘密の機能がなければなりません」

+0

ていますが、いずれかのコピーを、またはにイメージをコピーしていないスクリプトを含めることができますデバッグ設定に基づく.app。 –

答えて

7

最悪の場合、スクリプトの実行がターゲットにフェーズを構築する追加:私はスーパースクリプト男じゃない

if [ $BUILD_STYLE = "Release" ]; then 
    rm "$BUILT_PRODUCTS_DIR/MyApp.app/Contents/Resources/debug.png" 
fi 
+0

ワーストケース?これは私にとって最高のケースのように聞こえる。 –

+0

'$ BUILD_STYLE'ではなく、' $ CONFIGURATION'を使うべきでしょう。 –

+3

また、 'MyApp.app/Contents/Resources'の代わりに' $ UNLOCALIZED_RESOURCES_FOLDER_PATH'を使用することもできます。とりわけ、これにより、製品名を変更するとスクリプトが適応し、別のスクリプトファイルとして別のターゲットでスクリプトを再利用できます。 –

0

前処理ディレクティブを使用して、オプションでイメージを使用/表示できます。あまり詳細に入るがなければ、それはなるだろうような何か:

#ifdef DEBUG 
//use the debug image 
#endif 

配布ビルドを行うときに、DEBUGが定義されず、出来上がり、あなたのイメージが使用されることはありません。このディレクティブはyourProjectName_Prefix.pchで定義できますが、DEBUGビルドではその特定のマクロが定義済みである必要があります。

+0

それとも、のような何かができる: 'DEBUG' #IFDEF 'の#define MYIMAGE yourDebugImage.png' '#else' 'の#define MYIMAGE yourNonDebugImage.png'は '#endif' とは、あなただけの可能性どこでもmyImageを使用して、デバッグ/非デバッグイメージを表示します。 – Brirony

+1

ありがとうございます。私の関心事は、出力.appに画像を含めていることです。私はそれを使用しない方法を知っています。 :)私は質問を明確にしました。 –

+0

私は...自動ビルドシステムを使用しているのか、あなたのマシンのビルドをローカルに作成していますか? – Brirony

1

私が考えることができる唯一の方法は、Xcodeプロジェクトに2つの異なるターゲットを設定することです。次に、配布ターゲットにデバッグイメージを含めないでください。ここでの頭痛は、両方のターゲットに新しいクラス/アセットを確実に追加する必要があることです。

注:配布用にビルドするときは、可能な限りきれいに(つまり、Xcodeですべてをクリーンにし、ビルドディレクトリを削除してから、ビルドを実行する前にXcodeを閉じて再度開いてください)。私は、ほとんど同一のターゲットはビルド間で製品を明確にしない傾向があり、時には別のターゲットからのアセットが間違ったターゲットに入り込むことがあることがわかりました。

+0

あなたは正しいかもしれないと思います。私のラップに奇跡の回答がない場合、私は数時間後にこれを受け入れます。 :) –

+0

答えをありがとう。 rentzschのメンテナンスは少ないですが、これは賢明な回避策でした。 :) –

+0

私は同意します。私たちは、一度に複数のファイルを選択的に含めるために複数ターゲットのアプローチを使用していますので、私たちのために働きますが、ほんのわずかなことに、私は確実にrentzschが正しいと思います。 –

関連する問題