質問: XcodeでAPIのテストを行うため、ダミーサーバとしてNLTHTTPStubServerを利用しようとしています。 Development環境のURLとTestでのURLを変更するためにプリプロセッサマクロを試してみましたがうまくいきません。 行ったこと 1.ビルド設定の追加 "Debug"をDuplicateし"Debug_copy"を作成 2."Debug_copy"のプリプロセッサマクロに"DEVELOPMENT_ENV"を設定 3.スキーマの設定からTestの"Debug"を"Debug_copy"に変更 4.プロダクションコードにDEVELOPMENT_ENVの定義のありなしでURLの定数を変更するようにセット 5.テストを実行するとビルドが失敗してしまいます。 エラー内容は下記です。 ld: library not found for -lAFNetworking clang: error: linker command failed with exit code 1 (use -v to see invocation) マクロを定義しているところ以外は変更していないためなぜエラーが発生してしまうかよく分かりません。 どなたか原因および他にテスト実行時に動的にコンパイルを変更する方法を知っていましたらご教授お願いします。 目的はテスト時にテスト用のURL(文字列)を設定したいのです。
回答: こんにちは。 私もマクロを使って動作を切り替える同様の手法は日常的によく使っています。 詳しい状況はよくわかりませんが、ヒントになるかもしれないので回答します。 もともとあった Debug の方はビルド成功しているんですよね。だとしたら試しにコピー元の Debug の方に DEVELOPMENT_ENV マクロを設定してみてはどうでしょうか? それでうまくいくようでしたら Debug_copy の方の設定に何かが抜けているはずです。 しらみつぶしに Build Settings 等をチェックしていけば見つかるとおもいます。 ライブラリが見つからないというエラーみたいなので search path 関連でしょうか?