#import file not found 在 Swift 项目中使用 ObjectiveC 时 cocoaPods 中的错误
Posted
技术标签:
【中文标题】#import file not found 在 Swift 项目中使用 ObjectiveC 时 cocoaPods 中的错误【英文标题】:#import file not found error in cocoaPods when using ObjectiveC in Swift project 【发布时间】:2017-06-21 15:22:33 【问题描述】:我在我的 swift 3 项目中安装了一个 Objective C pod。我在 Podfile 中包含了“use_frameworks”,所以我不需要向桥接头添加任何内容。
问题是当我包含(第三方)生成的 ObjectiveC 文件时,该文件尝试从 pod #import 标头 - 它失败并显示“找不到‘[xxxxx].h’文件”
ObjectiveC #import "GTLRObject.h" 语句导致“GTLRObject.h file not found”错误。
我的播客文件:
target 'myHelloWorld' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'GoogleAPIClientForREST'
end
桥接头。我需要包含生成的 ObjectiveC 类的标头,以便我可以在我的 swift 代码中使用它:
#import "GTLREcho.h"
GTLREcho.h:
// NOTE: This file was generated by the ServiceGenerator.
// ----------------------------------------------------------------------------
// API:
// echo/v1
// Description:
// This is an API
#import "GTLREchoObjects.h"
#import "GTLREchoQuery.h"
#import "GTLREchoService.h"
错误在 GTLREchoObjects.h 中。 #import "GTLRObject.h" = "找不到'GTLRObject.h'文件":
#if GTLR_BUILT_AS_FRAMEWORK
#import "GTLR/GTLRObject.h"
#else
#import "GTLRObject.h"
#endif
如果我尝试从 swift 文件中引用 GTLRObject,我不会收到任何错误,例如
import Foundation
import GoogleAPIClientForREST
class ControllerHello: NSObject
func sayHello(strTest: String)
let gtlObject = GTLRObject
任何建议表示赞赏。
【问题讨论】:
更新用户标题搜索路径似乎可以解决这个问题。见this answer. 【参考方案1】:因为这个答案可能对其他人有用。
使用GoogleAPIClientForREST
时:
打开TARGETS
> App
> Build Settings
对于User Header Search Paths
,添加Pods
并选择recursive
。
【讨论】:
以上是关于#import file not found 在 Swift 项目中使用 ObjectiveC 时 cocoaPods 中的错误的主要内容,如果未能解决你的问题,请参考以下文章
#import file not found 在 Swift 项目中使用 ObjectiveC 时 cocoaPods 中的错误
gulp-sasserror: File to import not found or unreadable
Cordova/Cordova.h file not found的解决方法
protobuf import 文件编译时 提示was not found or had errors问题总结
opencv mac macOS Sierra 报错 'QTKit/QTKit.h' file not found 解决记录