“myFramework”模块的objective-c-umbrella标题不包括头“other
我的
Swift / iOS9框架’viewer_protocol’使用另一个和外部的Objective-C框架(
CocoaAsyncSocket).我正在使用Carthage构建CocoaAsyncSocket.到目前为止,一切正常工作:在我的框架Xcode项目中使用我的框架没有任何问题的应用程序的例子.
现在我想在不同的Xcode项目中使用我的框架 – 尽管使用Carthage.我只包括我的框架作为依赖关系,Carthage自动解析了对CocoaAsyncSocket的依赖.我将两个框架嵌入到这个新的Xcode项目中并构建我的应用程序:一切都可以正常工作 – 除了一个我不能摆脱的警告: /Users/hibento/Repositories/viewer_protocol/<module-includes>:1:1: Umbrella header for module 'viewer_protocol' does not include header 'GCDAsyncSocket.h' 这是我的框架标题: #import <UIKit/UIKit.h> //! Project version number for viewer_protocol. FOUNDATION_EXPORT double viewer_protocolVersionNumber; //! Project version string for viewer_protocol. FOUNDATION_EXPORT const unsigned char viewer_protocolVersionString[]; // In this header,you should import all the public headers of your framework using statements like #import <viewer_protocol/PublicHeader.h> #import <CocoaAsyncSocket/CocoaAsyncSocket.h> 可以看到CocoaAsyncSocket.h被导入.此外,在我的框架内,包括CocoaAsyncSocket.h文件: my framework’s folder http://s15.postimg.org/vqx0uj83b/2015_10_03_at_15_51.jpg 我在这里失踪了我在框架内使用了其他几个外部框架,对它们没有任何警告 – 所有这些外部框架都是用Swift编写的 – CocoaAsyncSocket是纯Objective-C. 这是我的框架module.modulemap: framework module viewer_protocol { umbrella header "viewer_protocol.h" export * module * { export * } } module viewer_protocol.Swift { header "viewer_protocol-Swift.h" } 更新 我找到了一个解决方案:在我的框架头中更改import语句 #import <CocoaAsyncSocket/CocoaAsyncSocket.h> 至 #import "CocoaAsyncSocket/CocoaAsyncSocket.h" 现在Xcode找到头文件,并且警告消失. 解决方法
对我来说,解决方案如下:
1)每个Objective C框架都有1个头文件,其中包含以下所有内容: #import ... #import ... #import ... 2)确保该文件导入缺少的标题. 3)再次构建项目,应该删除该警告. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |