Test bundle could not be loaded because an unantic

2020-02-26 04:14发布

问题:

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.