번들 UIT 테스트가 손상되었거나 필요한 리소스가 누락되어 로드할 수 없습니다.번들 재설치 시도
다음 오류로 인해 테스트 케이스를 실행할 수 없습니다.
- 번들 "UITests"가 손상되었거나 필요한 리소스가 누락되어 로드할 수 없습니다.번들을 다시 설치해 보십시오.
- 라이브러리가 로드되지 않았습니다. @rpath/Alamofire.framework/Alamofire.
- 이유: 이미지를 찾을 수 없습니다.
이틀 동안 검색하고 해결해 보았지만 이 문제를 해결할 수 없었습니다. 누가 도와주실 수 있나요?
저는 Xcode 10.1에서 생성된 프로젝트로 이 문제를 재현할 수 있었습니다.종속성 관리자로 Swift 4.2와 코코아 포드 1.10.0을 사용했습니다.다음과 같은 Pod 파일이 있었습니다.
# 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.
그래서 내 앱에서 이 라인을 제거했습니다.UI 테스트 빌드 설정:
후에 행실후후▁after실pod deintegrate && pod install
그리고 문제가 사라졌습니다.종속성이 더 많은 프로젝트(예: 여기)의 경우 다른 솔루션을 사용해야 합니다.
포드가 Framework 대상에만 적용되고 테스트 대상에는 적용되지 않기 때문입니다.포드 파일에 테스트 대상을 추가합니다.
예:
target 'MyFramework' do
use_frameworks!
pod 'Alamofire', '~> 4.5'
end
target 'MyFrameworkTests' do
use_frameworks!
pod 'Alamofire', '~> 4.5'
end
변경 테스트에값변inherit! :search_paths
inherit! :complete
이 기능은 설명서를 참조하십시오.
UI 테스트 대상 빌드 설정의 배포 대상이 테스트하려는 호스트 애플리케이션과 동일하게 설정되어 있는지 확인합니다.제 경우, 나중에 UIT 테스트 대상을 추가했는데, 기본 배포 대상 iOS 12로 만들었습니다.그런 다음 iOS 12 이하에서 UIT 테스트를 실행하려고 하면 질문에 언급된 오류가 발생했습니다.
에는 UI 을 UI 테스트 대상과 .use_frameworks!
.
구조로 이동하는 한 경우 도움이 되지 .use_frameworks!
전체적으로 포드 파일의 맨 위에 있습니다.
오류가 있는 Pod 파일(원본):
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
오류가 있는 Pod 파일(먼저 수정 시도):
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
최종 작업 포드 파일:
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
targets>mytestTarget>BuildSettings>에서 Runpath search Path에 프레임워크 위치를 추가해야 했습니다.실행 경로 검색 경로
프로젝트에 프레임워크를 추가하고 테스트를 실행하려고 할 때 이 오류가 발생했습니다.저는 필수가 아닌 선택사항으로 만들었고, 테스트는 성공했습니다.
Xcode 테스트 문제
The bundle UITests couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle
실행하려고 할 때 이 문제를 실행했습니다.UI Testing Bundle
테스트를 위해Framework
솔루션은 간단합니다.
Build Phases -> + -> New Copy Files Phase -> <select a framework> -> Destination Frameworks
결과적으로.<UI_Testing_Bundle_name>-Runner.app
생성됨
레거시 빌드 시스템으로 전환하여 Xcode 10에서 이 문제를 해결했습니다.
카르타고를 사용하여 이 문제에 직면한 사람을 위해, 저는 다음을 추가하여 해결했습니다./usr/local/bin/carthage copy-frameworks
스크립트 단계를 실행하여 메인 애플리케이션 대상이 아닌 UITTest 대상으로 프레임워크를 입력 파일로 추가했습니다.
]3
- 빌드 단계로 이동
- Copy Pods 리소스를 열고 경로 복사
- 복사 포드 리소스에서 복사한 경로를 붙여넣고 태그 이름 리소스를 프레임워크로 변경합니다.
- 청소 및 빌드
- UI 테스트 파일 실행
제 문제를 해결한 것은 1) 포드 파일에서 UITtests 대상을 삭제하는 단계입니다.처음에는 포드 파일에 다음과 같은 내용이 있었습니다.
target 'XUITests' do
inherit! :search_paths
end
포드 분해(포드 분해 사용)
포드 설치(포드 설치 포함)
프로젝트를 정리하고 프로젝트 또는 UIT 테스트 실행
내 경우에는, 그냥 제거하는 것.inherit! :search_paths
파일의 구조를 변경하거나 포드를 복제하지 않고 문제를 해결했습니다.
저는 답을 보았지만 설명 없이 제 글을 올리기로 했습니다.
문제는 UI 테스트가 메인 애플리케이션을 제어하는 별도의 애플리케이션에서 수행되므로 메인 애플리케이션의 프레임워크를 사용할 수 없으므로 Cocoapods UI 테스트 앱을 사용하여 프레임워크에 경로만 상속하면 시작 시 충돌합니다.
이 문제를 해결하려면 실제로 프레임워크를 UI 테스트 앱에 복사하거나 Pod 파일을 업데이트해야 합니다.
use_frameworks!
target 'App' do
pod 'Alamofire'
target 'App_UnitTests' do
inherit! :search_paths
pod 'Quick'
pod 'Nimble'
end
end
target 'App_UITests' do
pod 'Alamofire'
end
다른 프레임워크 내에서 Apollo 프레임워크를 사용하는 Xcode 11.2.옵션/필수로 변경하는 대신 임베디드로 설정하여 수정하였습니다.
다음과 같은 특정 오류:
번들 "XXX"가 손상되었거나 필요한 리소스가 누락되어 로드할 수 없습니다.번들을 다시 설치해 보십시오.라이브러리가 로드되지 않음: @rpath/Apollo.framework/Apollo
저는 그 틀을 짜넣어야 했습니다.
저는 UIT 테스트를 빌드할 때 오류가 발생했습니다.해결책:Targer는 잘못된 iOS 버전을 가지고 있었습니다. 저는 테스트된 Target과 동일한 버전으로 교체하고 모든 것이 작동합니다!
이 문제는 참조된 파일에서 가져오지 않은 프레임워크의 UIKit 클래스 확장에서 속성을 참조했기 때문에 발생했습니다.해당 속성을 사용하지 않아 수정되었습니다.나는 왜 그것이 애초에 컴파일되었는지 확신할 수 없습니다. 그것은 런타임 오류가 아니라 컴파일 타임 오류였습니다.
저의 경우 "My Mac(Mac Catalyst)" 대신 "My Mac"을 선택하면 테스트를 실행할 수 있습니다.
앱 대상의 모든 포드를 UI 테스트 대상에 복사해 보십시오.2019년에는 효과가 있습니다.
실제로 Cocoapods를 사용하는 경우 "pod install"만 실행하면 빌드 설정이 자동으로 업데이트됩니다.
언급URL : https://stackoverflow.com/questions/40480503/the-bundle-uitests-couldn-t-be-loaded-because-it-is-damaged-or-missing-necessary
'programing' 카테고리의 다른 글
이 오류가 계속 발생합니다. XML 구문 분석 오류: 구문 오류이지만 웹 사이트는 여전히 정상적으로 실행됩니다. (0) | 2023.09.02 |
---|---|
c# mysql 데이터 올바른 구문을 위해 mariadb 서버 버전을 추가합니다. 사용 위치: (0) | 2023.09.02 |
요소 집합의 최대 높이를 가진 요소 (0) | 2023.09.02 |
npm과 링크한 모든 Node.js 모듈을 나열하는 방법 (0) | 2023.09.02 |
"인증 플러그인 'caching_sha2_password' (0) | 2023.09.02 |