Brijesh Thakur
Brijesh Thakur

Reputation: 6788

Test bundle could not be loaded because an unanticipated error

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.

Upvotes: 24

Views: 20096

Answers (10)

Narlei Moreira
Narlei Moreira

Reputation: 276

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

Upvotes: 2

Vicente Garcia
Vicente Garcia

Reputation: 6380

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.

Upvotes: 0

funct7
funct7

Reputation: 3591

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

Upvotes: 2

Menno
Menno

Reputation: 1292

I was able to resolve this issue by setting the host application for the test target: Host Application

Upvotes: 21

CommaToast
CommaToast

Reputation: 12188

For me, we had just turned on CloudKit entitlement. For some reason that broke building.

Upvotes: 0

odlp
odlp

Reputation: 5124

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.

Adding frameworks from Carthage

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.

Upvotes: 31

Lukas Spieß
Lukas Spieß

Reputation: 2468

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.

Upvotes: 25

Liron Yahdav
Liron Yahdav

Reputation: 10732

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.

Upvotes: 12

Pellet
Pellet

Reputation: 2437

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.

Upvotes: 1

Brijesh Thakur
Brijesh Thakur

Reputation: 6788

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

Upvotes: 15

Related Questions