已成功安装OneSignal(2.6.0)Pod,Xcode9.3+Swift4.1桥接头文件报错
我之前在Swift项目里集成OneSignal时也碰到过一模一样的问题,结合你的环境(Xcode 9.3、Swift 4.1、OneSignal 2.6.0),给你几个亲测有效的解决步骤:
确认Pod安装完全成功
先打开你的Podfile,确认已经添加了pod 'OneSignal', '2.6.0'这条语句,然后在终端进入项目根目录,执行pod install --repo-update(加--repo-update能确保拉取最新的Pod索引),全程留意终端是否有报错。如果安装失败,根据错误信息修复——比如网络问题就换稳定网络,或者直接删除Podfile.lock和Pods文件夹后重新执行安装。检查桥接头文件的路径配置
打开Xcode的Build Settings,搜索Objective-C Bridging Header,确认填写的路径正确。举个例子,如果你的桥接文件叫YourProject-Bridging-Header.h且放在项目根目录,路径应该是$(SRCROOT)/YourProject-Bridging-Header.h(把YourProject换成你的项目名称)。路径写错的话,Xcode找不到桥接文件,自然会报头文件缺失的错误。验证头文件搜索路径
在Build Settings里搜索Header Search Paths,确保里面包含$(inherited)和${PODS_ROOT}/Headers/Public这两个路径,且设置为recursive(递归搜索)。CocoaPods通常会自动配置这些,但偶尔会因Xcode版本或配置异常丢失,手动添加上就能解决头文件查找问题。清理缓存并重启Xcode
Xcode的缓存经常会搞出奇怪的问题:先按Cmd+Shift+K清理项目,再按Cmd+Option+Shift+K清理构建文件夹,然后完全退出Xcode(不要只最小化),重新打开项目的.xcworkspace文件——划重点!用CocoaPods管理依赖的项目,必须打开xcworkspace而非xcodeproj。检查OneSignal Pod的文件结构
打开项目的Pods文件夹,找到OneSignal目录,进入Headers/Public/OneSignal,确认存在OneSignal.h文件。如果没有,说明Pod安装不完整,删除Podfile.lock和Pods文件夹后重新执行pod install。尝试更换import写法
如果上面的步骤都无效,可以把桥接文件里的#import <OneSignal/OneSignal.h>换成#import "OneSignal/OneSignal.h",有时候引号的查找优先级和尖括号不同,可能会解决问题。
内容的提问来源于stack exchange,提问作者Dharini

