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.
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.
I found the answer by myself.
Your Build Settings -> Architectures should be same for Library and Test Project
Your Test Project's Linking -> Mach-O Type should be Bundle
Do Build and Run Tests. Thats it
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), orCopy Bundle Resources
, this will also produce the damaged / invalid bundle error message.Check if you forgot to add your test target in your
Podfile
: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
For me, we had just turned on CloudKit entitlement. For some reason that broke building.