可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Recently I have started writing test case for one old static library. I have loaded the library to Xcode 5,Since Static Library is old , I have to manually add TestProject with Test Target.
When I am trying "Product-->Test" , It launches emulator and Console shows following error
The test bundle at /xxx/xxx/xxx/StaticLibTest.xctest could not be
loaded because an unanticipated error occurred: Error
Domain=NSCocoaErrorDomain Code=3587 "The bundle “StaticLibTest.xctest”
couldn’t be loaded because it is damaged or missing necessary
resources."
(dlopen_preflight(/xxx/xxxx/xxx/Debug-iphonesimulator/StaticLibTest.xctest/StaticLibTests):
no suitable image found. Did find:
I don't have any clue why this error comes.
Any help for pointing out to the right direction will be really appreciated.
回答1:
If other readers are getting this error, and you're using Carthage to add a framework, ensure the Copy Files
phase is with Destination: Frameworks.
If you accidentally add the frameworks to a Copy Files
phase with a different target (other than Frameworks), or Copy Bundle Resources
, this will also produce the damaged / invalid bundle error message.
回答2:
I had a similar problem. For me, the problem was a unit testing framework that was a dynamic framework but not copied over to the xctest bundle.
The solution was to add a "Copy Files" phase to my unit test target, set its destination to "Frameworks" and add my framework as an input file.
回答3:
I was able to resolve this issue by setting the host application for the test target:
回答4:
I found the answer by myself.
Your Build Settings -> Architectures should be same for Library and Test Project
Architectures -> Architectures = Standrad Architectures (armv7 ,armv7s ,
arm64)$(ARCHS_STANDARD)
Your Test Project's Linking -> Mach-O Type should be Bundle
Linking -> Mach-O Type = Bundle
Do Build and Run Tests. Thats it
回答5:
For me this issue was due to the "iOS Deployment Target" Build Setting being different in my test target than my main app. Once I made them the same the problem went away.
回答6:
Check if you forgot to add your test target in your Podfile
:
target 'MyProject' do
# Add test target
target 'MyProjectTests' do
inherit! :search_paths
end
pod 'SomePodLibrary'
end
回答7:
The bundle UITests couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle
Verify if all your targets are using the same iOS version in:
Build Settings -> iOS Deployment Target
回答8:
Turning off the pod configuration for the test target fixed the problem for me, it had something to do with the pod configuration messing with it.
回答9:
For me, we had just turned on CloudKit entitlement. For some reason that broke building.
回答10:
Had a similar issue:
FrameworkA imports FrameworkB
FrameworkA-Tests also imports FrameworkB
What solved the issue was to remove(comment) all references to FrameworkB in FrameworkA-Tests, then Run Tests once and uncomment the references.
FrameworkA-Tests now imports FrameworkB and runs fine.