

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(文字列)を設定したいのです。


CC BY-SA 3.0
2015-09-24T13:13:57.517
16903
2015-12-14T00:39:03.723
12232
question
ios xcode
Xcodeテスト実行時に動的にコンパイルを変更する方法


こんにちは。  
私もマクロを使って動作を切り替える同様の手法は日常的によく使っています。

詳しい状況はよくわかりませんが、ヒントになるかもしれないので回答します。  
もともとあった Debug の方はビルド成功しているんですよね。だとしたら試しにコピー元の Debug の方に DEVELOPMENT_ENV
マクロを設定してみてはどうでしょうか？

それでうまくいくようでしたら Debug_copy の方の設定に何かが抜けているはずです。  
しらみつぶしに Build Settings 等をチェックしていけば見つかるとおもいます。  
ライブラリが見つからないというエラーみたいなので search path 関連でしょうか？


CC BY-SA 3.0
2015-09-26T13:59:14.530
16961
2015-09-26T14:06:24.053
2015-09-26T14:06:24.053
16903
answer


もしかして、CocoaPodsをお使いでしょうか？  
そうでなければこの回答は無視してください。

CocoaPodsをお使いなら、Pods側のライブラリをリンクするときにDebug_copy用のものを使うようにすれば解決すると思います。

  1. `pod install` するとDebug_copy用のxcconfigファイルが作られます。
  2. XcodeでアプリのプロジェクトのPodsグループに作られたxcconfigファイルを追加します。（Pods/Target SupportFiles/Pods-xxxx/Pods-xxxx.debug_copy.xcconfigを追加します）
  3. 追加したPods-xxxx.debug_copy.xcconfigは、右のUtilityペインのTarget Membershipのところでターゲットにチェックが入っていると思うので、チェックを外します。
  4. PROJECTのConfigurationsでDebug_copyを開いて「Pods-xxxx.debug」になっているのを「Pods-xxxx.debug_copy」に置き換えます。

※xxxxの部分はアプリのプロジェクト名


CC BY-SA 3.0
2015-10-14T22:54:42.473
17658
2015-10-14T22:54:42.473
2851
16903
answer