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)
none
for both debug and releasepod install
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!
答案 0 :(得分:128)
这已经为我解决了这个问题:
就我而言,除非我删除了pods框架,否则它没有用,但我觉得这是一种解决方法。也许有经验的人可以评论。
答案 1 :(得分:28)
有时在重命名目标或移动某些内容后,您可能会损坏您的pod安装。幸运的是,有一种比sudo make install
解决方案更容易解决的问题。
pod deintegrate
以从项目中删除任何Cocoapods痕迹。pod install
将其全部添加回来。就是这样,修好了。
答案 2 :(得分:5)
我的问题是当我运行测试时出现此错误。因为我只是将它安装在我的
中target 'Project' do
pod 'xxx'
end
您还应该将其添加到测试目标中:
target 'ProjectTests' do
pod 'xxx'
end
答案 3 :(得分:1)
就我而言,我有几个框架以红色列出。这些是以前的Podfile配置遗留下来的。我只是删除了以红色列出的这些框架,问题得到解决。
答案 4 :(得分:1)
显式将Cocoapods框架导入测试类/测试目标中的一个可能原因。
示例:
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
我首先导入了AlamofireImage
,因为我在typealias Image
中定义的测试中明确使用了AlamofireImage
。
如果像我的例子一样容易阻止导入,那就去做吧。我刚刚将Image的定义复制到我的测试类文件中。
如果您认为自己真的需要这种导入,请继续回答William Hu的问题。他回答的一个脚注:
target 'MyProjectTests' do
pod 'OnlyThatFrameworkYouImportIntoYourTest'
end
您只需要将那些pod添加到您的(需要)明确导入的测试目标。