1

Swift プロジェクトで KIF を参照しようとすると、散発的な問題が発生します。

「クリーン」を行った後、プロジェクトのコンパイルが停止し、エラーが発生しました。No such module 'KIF'

KIF の cocoapods ファイル エントリは次のとおりです。

target 'MyProjectTests', :exclusive => true do
    pod 'KIF', '~> 3.0', :configurations => ['Debug','QA']
end

(これは、 KIF の readmeから推奨される cocoapods 構成です。)

cocoapods エントリを上記から次のように変更することで、再度コンパイルできます。

pod 'KIF', '~> 3.0'

ただし、実行しようとするとプロジェクトがクラッシュします。

dyld: Library not loaded: @rpath/XCTest.framework/XCTest
  Referenced from: /Users/albertbori/Library/Developer/CoreSimulator/Devices/29008343-5A97-47FB-B0E6-66D18A331BDA/data/Containers/Bundle/Application/C0E16F80-9A08-4228-96F7-8A24F08AB066/MyProject.app/Frameworks/KIF.framework/KIF
  Reason: image not found

次に、元の構成に戻して を実行するpod installと、KIF でのテストが再び機能します...

KIF を正しく参照して、そのフレームワークで安定したビルドと開発を行うにはどうすればよいですか?

4

1 に答える 1

0

この問題を CocoaPods の問題トラッカーに投稿した後、 kylefのおかげで、ポッドを誤って二重リンクしていたことに気付きました。

これは、私が作成したサンプル プロジェクトの問題を解決するための彼のプル リクエストです。

要約すると、ルート プロジェクトとテスト プロジェクトの両方をリンクするが、条件付きでテスト ターゲットに追加の Pod を追加する場合、Podfile は次のようになります。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

use_frameworks!

pod 'MBProgressHUD', '~> 0.8'
pod 'Locksmith'

target 'catch22Tests' do
  pod 'KIF', '~> 3.0'
end

この場合、使用しないでください: を使用しないと、 2 回link_with 'catch22', 'catch22Tests'リンクされます。catch22Tests

于 2015-01-30T03:21:17.557 に答える