I am trying to clone a project from a bitbucket repository and am getting an error Id: framework not found Pods clang: error: linker command failed with exit code 1 (u
One possible cause in an explicit import of a Cocoapods framework into a test class / into the test target.
Example:
import XCTest
//import AlamofireImage
@testable import MyProject
// instead of importing AlamofireImage:
#if os(iOS) || os(tvOS) || os(watchOS)
import UIKit
public typealias Image = UIImage
#elseif os(macOS)
import Cocoa
public typealias Image = NSImage
#endif
I first imported AlamofireImage
because I explicitly used typealias Image
in my test as defined in AlamofireImage
.
If it is as easy to prevent an import as in my example, do it. I just copied the definition of Image into my test class file.
If you think you really need that import, go on with the answer of William Hu. A footnote to his answer:
target 'MyProjectTests' do
pod 'OnlyThatFrameworkYouImportIntoYourTest'
end
You need to add only those pods to your test target, that you (need to) import explicitly.
This has fixed it for me:
In my case, it didn't work unless I removed the pods frameworks, but I get the feeling that this is a workaround. Perhaps someone with more experience can comment.
Sometimes after renaming a target or moving something, you can corrupt your pods installation. Luckily, there's an easier way to fix it than sudo make install
's solution.
pod deintegrate
to remove any trace of Cocoapods from your project.pod install
again to add it all back.That's it, fixed.
In my case, I had several frameworks listed in red. These were left over from previous Podfile configurations. I simply removed these frameworks listed in red and the problem was fixed.
My issues is when i ran test i got this error. Because i just install it in my
target 'Project' do
pod 'xxx'
end
You should also add it into your test target:
target 'ProjectTests' do
pod 'xxx'
end