iOS ロジックテストで CocoaPods を使用するときにライブラリが見つからない 質問する

iOS ロジックテストで CocoaPods を使用するときにライブラリが見つからない 質問する

私は、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再度実行します。

おすすめ記事