3

そのため、コマンド ラインから実行して iOS アプリケーションの UI をテストする自動テストを作成しています。プロジェクトをクリーンアップしてビルドし、UI 自動テストを実行する bash スクリプトが動作しています。

問題は、コマンド ライン スクリプトで Xcode プロジェクトの C フラグを変更できるようにしたいことです。これにより、アプリケーションがどのサーバーを指しているかが決まります。例えば:

./run-test -target "Debug-Server"

C-Flag SERVER_ADDRESS の値を DEBUG_SERVER に変更します:

./run-test -target "QA-Server"

C-Flag SERVER_ADDRESS の値を QA_SERVER に変更します

これを行うために、正しいサーバーを指すようにコード内の C フラグを設定する xcodebuild にフィードされる .xcconfig ファイルを作成する予定です。このようなもの:

xcodebuild -target <TARGET_NAME> -configuration Debug-QA.xcconfig -sdk "$DEVICE_SLUG""$CURRENT_SDK" DSTROOT=. clean build

私は .xcconfig ファイルについてまったく詳しくないので、いくつか質問があります。

  1. .xcconfig ファイルにすべてのビルド設定を記述する必要がありますか? または、Xcode が使用する何らかの「デフォルト」値はありますか?
  2. これを行うより良い方法はありますか?
4

1 に答える 1

3

私はそれを理解し、.xcconfigと#ifdefステートメントの組み合わせを使用しました:

サーバーを宣言する構成ファイルでは、次のようになります。

#ifdef USE_DEV
#define SERVER_ADDRESS   DEV_SERVER_ADDRESS   //USED IN AUTOMATED TESTING DEBUG SERVERS

#elif defined USE_QA
#define SERVER_ADDRESS   QA_ADDRESSS          //USED IN AUTOMATED TESTING STAGING SERVERS 

#elif defined USE_LIVE
#define SERVER_ADDRESS   LIVE_SERVER_ADDRESS  //USED IN AUTOMATED TESTING LIVE SERVERS

#else
#define SERVER_ADDRESS   DEV_SERVER_ADDRESS   //DEFAULT VALUES
#endif

次に、次のように記述された3つの.xcconfigファイルを使用しました。

dev.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = USE_DEV

QA.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = USE_QA

LIVE.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = USE_LIVE
于 2012-11-29T02:18:06.413 に答える