问题
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 (use -v to see invocation)
when trying to run an Xcode project in workspace. These are the steps I have followed, if anyone could let me know what I am doing wrong, that would be great!
git clone (link to bitbucket)
- changed the configuration settings in the Xcode pods project to
none
for both debug and release - performed
pod install
- opened Xcode workspace file
- tried to build in Xcode and received the error
Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation)
Edit Here is the podfile:
# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
target 'Oncarb' do
pod 'Alamofire'
pod 'SwiftyJSON', '~> 2.2.0'
end
#target 'OncarbTests' do
# pod 'Alamofire'
# pod 'SwiftlyJSON', '~> 2.2.0'
#end
Is there a step I am missing?
Thank you!
回答1:
This has fixed it for me:
- Open up the workspace.
- Click on the blue project icon (that expands into your file tree) on the left hand side of the screen
- Just to the right, select "Targets" (as opposed to "Project"--Project is blue, Target is like a pencil and a ruler and a paintbrush making a triangle)
- Click on the General tab
- Go to the "Linked Frameworks and Libraries" section (all the way at the bottom)
- Delete the Pods frameworks
- Add Alamofire and SwiftyJSON
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.
回答2:
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.
- Run
pod deintegrate
to remove any trace of Cocoapods from your project. - Run
pod install
again to add it all back.
That's it, fixed.
回答3:
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
回答4:
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.
回答5:
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.
来源:https://stackoverflow.com/questions/31139534/pod-error-in-xcode-id-framework-not-found-pods