问题
在最近的pod install运行之前,我在我的项目(完全工作的项目)中有一组功能良好的Pods,现在我在桥接头(这是一个带有Obj包含的Swift项目)中提到的标题出现了“文件找不到”错误。在做了一些研究之后,似乎应该有指向Pods/Headers中的头的符号链接,这个目录对我来说是空的。但是,豆荚本身已经下载,所有相应的Pods/[Lib]目录都存在。
最后为人所知的良好状态
在此错误发生之前,我所做的更改是为我正在使用的一个库指定:git和:commit标志。然后我重新运行pod install,并开始看到“文件未找到”错误。当时我正在使用Cocoapods 0.39
现状
我尝试过其他堆栈溢出线程的一些解决方案,包括添加User Header Search Paths (现在恢复到原来的),以及更新我的cocoapods。我现在的cocoapods版本是1.0.0.beta.6。除了需要重写部分Podfile以符合新标准等额外的麻烦之外,我现在似乎回到了相同的状态(所有库都成功下载,但是找不到头)。
下面是一个示例,说明如何在桥接标头中包含我的标头:
// In this header, you should import all the public headers of your framework using statements like #import <MyKit/PublicHeader.h>
#import <CocoaLumberjack/CocoaLumberjack.h>下面是我的Podfile的样子(为了避免不相关的内容,我尝试将其精简):
source 'https://github.com/CocoaPods/Specs'
platform :ios, '8.0'
use_frameworks!
pod 'CocoaLumberjack', '2.0.0'
pod 'SwiftyJSON', '~> 2.3'
pod 'Classy', :git => 'https://github.com/ClassyKit/Classy.git', :commit => 'c319908f8bded62e268dfd48ee5d65329b819129'
workspace 'my.work-ios'
project 'mywork' # sdk
project 'Examples/example1' # sample project using sdk
project 'my.work-ios.xcodeproj' # placeholder for main project, not really in use
target 'UnitTests' do
pod 'Specta'
pod 'Expecta'
pod 'OCMock'
pod 'OHHTTPStubs'
end
# Copy acknowledgements to the Settings.bundle
post_install do | installer |
require 'fileutils'
pods_acknowledgements_path = 'Pods/Target Support Files/Pods/Pods-Acknowledgements.plist'
settings_bundle_path = Dir.glob("**/*Settings.bundle*").first
if File.file?(pods_acknowledgements_path)
puts 'Copying acknowledgements to Settings.bundle'
FileUtils.cp_r(pods_acknowledgements_path, "#{settings_bundle_path}/Acknowledgements.plist", :remove_destination => true)
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['OTHER_SWIFT_FLAGS'] = "-DLEGACY"
end
end
end更新
经过进一步的研究,我发现罪魁祸首是use_frameworks!命令,省略了它(然后删除Swift库,因为它们是必需的),导致Pods/Headers中填充了Private和Public目录,以及相关标题的符号链接。
在以前的cocoapods版本中,情况并非如此,我仍在试图了解发生了什么,因为省略该命令对我来说不是一个有用的解决办法(考虑到我在应用程序中使用的Swift库)。
更新2
在评论中已经提到了这一点,但为了方便起见,我也把它放在这里。这似乎是由这个线程中报告的一个错误引起的:https://github.com/CocoaPods/CocoaPods/issues/4605#issuecomment-208822149。该线程还提出了一些可能对某些人来说足够好的解决办法。对我来说,他们不是,所以我回到了0.39。
发布于 2016-11-18 12:52:26
你试过这个设置了吗?
target 'TargetProject' do
pod 'CocoaLumberjack', '2.0.0'
pod 'SwiftyJSON', '~> 2.3'
pod 'Classy', :git => 'https://github.com/ClassyKit/Classy.git', :commit => 'c319908f8bded62e268dfd48ee5d65329b819129'
end还有这个“快速版”吗?其中包含“3.0-GM-候选”
我正在使用这种设置,用于快速3.0
https://stackoverflow.com/questions/36507504
复制相似问题