找不到 CocoaPods 桥接头文件

Posted

技术标签:

【中文标题】找不到 CocoaPods 桥接头文件【英文标题】:CocoaPods Bridging Header file not found 【发布时间】:2016-10-15 21:39:42 【问题描述】:

这里是新开发人员,我目前正在快速构建一个应用程序。我们正在使用 cocoapods,但是在运行 pod install 之后,我们在 Objective-c 桥接头中收到一个错误,指出该文件无法找到,但对于我们的桥接头中的所有文件。例如,我们使用 DateTools。我们 pod 安装它,在我们放置的桥接头中: #import <DateTools/DateTools.h> 但是,在运行时,它会出错,说'Datetools/Datetools.h' file not found。我已经浏览了很多其他类似的帖子(如this、this 或this),但没有一个解决了这个问题。任何帮助将不胜感激!

【问题讨论】:

确保您使用框架,而不是将其导入到桥接头中,为什么不尝试在您的班级顶部做一个简单的import 呢? 在 podfile 中,我们确实有 use_frameworks!。当我删除桥接头时,它会在导入时出错并说类似No such module "Parse" 对于 pod,我们根本不使用桥接头 pod 背后的整个笑话是,我们不必桥接标题,因为 cocoapods 为我们完成了这项工作 感谢您的接受。我赞成你的问题。希望你的代码能正常工作。祝你的项目好运 【参考方案1】:

当使用use_frameworks! Cocoapods 中的指令,在 Swift 中导入 Objective-C pod 不需要桥接头。

只需将所需的 pod 设置到 podfile 中:

#Uncomment this line to define a global platform for your project
platform :ios, '9.0'
#Uncomment this line if you're using Swift
use_frameworks!

target 'YourProject' do

#Swift Pods
pod 'Alamofire'
pod 'ActiveLabel'

#ObjC Pods
pod 'IDMPhotoBrowser'
pod 'Firebase'

#This stuff is to set the SWIFT_VERSION
post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '2.3'
        end
    end
end
end

运行pod install。运行pod update(应该不是必需的,但由于某种原因,我几乎每次都得到更新,即使在全新安装之后也是如此)。关闭 Xcode 并使用白色的xcworkspace 文件重新打开。

import Alamofire
import ActiveLabel 
import IDMPhotoBrowser
import Firebase

完成。

【讨论】:

以上是关于找不到 CocoaPods 桥接头文件的主要内容,如果未能解决你的问题,请参考以下文章

Obj-C 的 Swift 桥接头

桥接头文件找不到导入的 Objective-C 项目

桥接头文件找不到导入的 Objective-C 项目

为啥我的简单目标 c 桥接头找不到文件“BraintreeCore.h”?

为啥我的简单目标 c 桥接头找不到文件“BraintreeCore.h”?

创建应用程序扩展时找不到桥接头