iOSプロジェクトの依存関係を管理するためにcocoapodsをいじり始めたところです。現在、GHIOSUnitを使用して単体テストを統合しようとしています。私は彼らのすべての指示に従い、彼らのサンプルテストを試しました、そしてそれはすべて魅力のように働きました。
ただし、実際のプロジェクトファイルをテストに使用し始めると、問題が発生します。
クライアントサーバー通信にAFNetworkingを使用していますが、AFHTTPClientのラッパーである「CRLClient」という共有クライアントにアクセスすると、未定義のシンボルエラーが発生します。
Undefined symbols for architecture armv7:
"_OBJC_METACLASS_$_AFHTTPClient", referenced from:
_OBJC_METACLASS_$_CRLClient in CRLClient.o
"_OBJC_CLASS_$_AFJSONRequestOperation", referenced from:
objc-class-ref in CRLClient.o
"_OBJC_CLASS_$_AFHTTPClient", referenced from:
_OBJC_CLASS_$_CRLClient in CRLClient.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
依存関係を管理するためのポッドファイルは次のようになります
workspace 'Storyboards.xcworkspace'
platform :ios, '5.0'
pod 'AFNetworking', '1.1.0'
target :UnitTests, :exclusive => true do
pod 'GHUnitIOS', '0.5.6'
end
実際のプロジェクトターゲットは正常に構築され、AFNetworkingと完全に連携します。
PS UnitTestターゲットに追加するには、テストするすべてのファイルを追加する必要があります。次に、ビルドフェーズで「ターゲット依存関係」を追加するとどうなりますか?
要するに、
- 異なるターゲット間で共通の依存関係を共有する方法は?
- 各ファイルを新しいターゲットに追加する必要がある場合、ターゲットの依存関係を追加すると実際に何が起こりますか?