web-dev-qa-db-ja.com

バンドルUITestsが破損しているか、必要なリソースが不足しているため、ロードできませんでした。バンドルを再インストールしてください

次のエラーのため、テストケースを実行できません。

  • バンドル「UITests」は破損しているか、必要なリソースがないため、ロードできませんでした。バンドルを再インストールしてください。
  • ライブラリがロードされていません:@ rpath/Alamofire.framework/Alamofire。
  • 理由:画像が見つかりません

2日間から検索と解決を試してみてください。しかし、この問題を解決できなかった人は助けてください。

56
user2273146

Xcode 10.1で生成されたプロジェクトでこの問題を再現できました。 Swift 4.2とCocoaPodsを依存関係マネージャーとして使用しました。次のPodfileがありました。

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'

target 'MyApp' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyApp
  pod 'Alamofire', '4.8.1'

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

その後、use_frameworks!、詳細については このリンク を参照してください。

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'

target 'MyApp' do

  # Pods for MyApp
  pod 'Alamofire', '4.8.1'    

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

私もこのような警告を受け取りました:

[!] The `MyAppUITests [Debug]` target overrides the `ALWAYS_EMBED_Swift_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-MyApp-MyAppUITests/Pods-MyApp-MyAppUITests.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

そのため、MyAppUITestsビルド設定からこの行を削除しました。

MyAppUITests build settings

その後、pod deintegrate && pod installそして、問題は消えました。おそらく、より多くの依存関係を持つプロジェクト( here など)の場合、別のソリューションを使用する必要があります。

26
Roman Podymov

これは、ポッドがフレームワークターゲットにのみ適用され、テストターゲットには適用されないためです。テストターゲットをポッドファイルに追加します。

例:

target 'MyFramework' do
  use_frameworks!
  pod 'Alamofire', '~> 4.5'
end

target 'MyFrameworkTests' do
  use_frameworks!
  pod 'Alamofire', '~> 4.5'
end
11
Anthony

UITestターゲットビルド設定の展開ターゲットが、テストしようとしているホストアプリケーションと同じに設定されていることを確認します。私の場合、後でUITestingターゲットを追加し、デフォルトのデプロイメントターゲットiOS 12で作成しました。その後、iOS 12未満でUITestを実行しようとすると、質問に記載されているエラーが発生しました。

9
Samuël

私の場合、UIテストのターゲットをuse_frameworks!で区切る必要がありました。

Podfileの上部のどこかにuse_frameworks!をグローバルに指定した場合、UIテストのターゲットをネストされた構造からそれ自体に移動しても役に立ちません。

エラー(元)のあるPodfile

platform :ios, '10.0'

inhibit_all_warnings!
use_frameworks!

target 'MyProject' do
  pod 'R.Swift', '~> 5.0'
  pod 'Moya/RxSwift', '~> 12.0'
  # and other pods

  target 'MyProjectTests' do
    inherit! :search_paths

    pod 'iOSSnapshotTestCase', '~> 6.0'
  end

  target 'MyProjectUITests' do
    inherit! :search_paths
  end
end

エラーのあるPodfile(最初に修正しよう):

platform :ios, '10.0'

inhibit_all_warnings!
use_frameworks!

def shared_pods
  pod 'R.Swift', '~> 5.0'
end

target 'MyProject' do
  shared_pods

  pod 'Moya/RxSwift', '~> 12.0'
  # and other pods

  target 'MyProjectTests' do
    inherit! :search_paths

    pod 'iOSSnapshotTestCase', '~> 6.0'
  end
end

target 'MyProjectUITests' do
  shared_pods
end

最終的な作業Podfile

platform :ios, '10.0'

inhibit_all_warnings!

def shared_pods
  pod 'R.Swift', '~> 5.0'
end

target 'MyProject' do
  use_frameworks!

  shared_pods

  pod 'Moya/RxSwift', '~> 12.0'
  # and other pods

  target 'MyProjectTests' do
    inherit! :search_paths

    pod 'iOSSnapshotTestCase', '~> 6.0'
  end
end

target 'MyProjectUITests' do
  shared_pods
end
9

フレームワークの場所を、ターゲット> mytestTarget>ビルド設定> Runpath Search Pathの下のRunpath検索パスに追加する必要がありました

8
Martin O'Shea

レガシービルドシステムへの切り替えにより、Xcode 10の問題が修正されました。

2
YMonnier

このエラーは、プロジェクトにフレームワークを追加したときに発生し(それもフレームワークそのものです)、テストを実行しようとしました。必須ではなくオプションにしたので、テストは成功しました。 enter image description here

1
catanore

私の問題を解決したのは、次の手順に従うことでした:1)ポッドファイルからUITestsターゲットを削除します。最初は、ポッドファイルに次のものがありました。

target 'XUITests' do
    inherit! :search_paths   
end

2)ポッドを分解する(ポッドを分解する)

3)ポッドをインストールします(ポッドインストールを使用)

4)プロジェクトをクリーンアップして、プロジェクトまたはUITestを実行します

1
Melkon

この問題を修正するには、Roman Podymovの回答に従ってpod deintegrateその後pod install

1
Carl Burnham

私にとって、エラーはUIテストのビルド時でした。解決策:ターゲットのiOSバージョンが間違っていました。テスト済みのターゲットと同じバージョンに置き換え、すべてが機能します!!

0
Narlei Moreira

テスト対象の変更inherit! :search_pathsからinherit! :complete。これが何をするかについては documentation をご覧ください。

0
Rem-D

1

2[![3 ]

  1. ビルドフェーズに移動
  2. Copy Pods Resourcesを開き、パスをコピーします
  3. Copy Pods Resourcesからコピーしたパスを貼り付け、フレームワークでタグ名リソースを変更します
  4. クリーンアンドビルド
  5. UITestsFileを実行します
0
user2273146