私は、podspec 内のいくつかのライブラリの機能を使用するプロジェクト内のクラスに対して、iOS ロジック テストをいくつか記述しようとしています。Xcode で提供されている標準の単体テスト バンドルを使用しています (ただし、アプリケーション テストではなく、単体テストのみです)。
たとえば、私は Magical Record を使用しており、そのライブラリを podspec にリンクしています。このライブラリはワークスペースの Pods プロジェクトに存在し、シミュレーターまたはデバイスでアプリが実行されているときに期待どおりに動作します。ただし、Magical Record を使用するオブジェクトをテストにリンクしようとすると、Magical Record からセレクターが見つからないというリンカー エラーが発生します。ロジック テスト バンドルの HEADER_SEARCH_PATH を更新しようとしましたが、CocoaPods によって作成されたヘッダー ディレクトリにハード コーディングしてもうまくいきませんでした。
CocoaPods ライブラリを使用しないクラスに対しても問題なく単体テストを実行できます。
これは間違ったやり方でしょうか? コンパイラーが CocoaPods ライブラリを認識できるようにするには、何か他のことをする必要がありますか?
ベストアンサー1
CocoaPods 1.0 では、この構文が変更されました。現在は次のようになっています。
def shared_pods
pod 'SSKeychain', '~> 0.1.4'
...
end
target 'Sail' do
shared_pods
end
target 'Sail-iOS' do
shared_pods
end
CocoaPods 1.0以前の回答
使いたいのはlink_with
あなたの からPodfile
。次のようなものです:
link_with 'MainTarget', 'MainTargetTests'
その後、pod install
再度実行します。