inf*_*oop 7 frameworks libxml2 ios kissxml swift
我有使用KissXML Objective-C库的Swift Framework项目.KissXML内部使用libxml.
当我构建xcode项目(Xcode 6 - beta 5)时,我收到此错误:
error: <unknown>:0: error: '/SwiftFramework/SwiftFramework/KissXML/DDXMLNode.h:2: include of non-modular header inside framework module SwiftFramework.DDXMLNode
我已经看到这个答案讨论了将相关的头文件公开.我已经这样做但我不知道如何解决在DDXMLNode.h中导入的此标头的情况,并且这不是我的项目的明确部分:
#import <libxml/tree.h>
有关如何处理这个的任何建议?
注意:我在Objective-C only项目上使用过KissXML,它工作正常(Xcode 5).
inf*_*oop 10
诀窍是创建一个模块并将其包含在您的项目中.
要创建模块,您可以创建一个名为module.modulemap的文件,该文件在感兴趣的头文件中导出API,如下所示:
module libxmlModuleDevice {
header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h"
export *
}
module libxmlModuleSimulator {
header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/libxml2/libxml/tree.h"
export *
}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要为模拟器和实际设备执行此操作 - 因此文件中有2个条目.
这个文件module.modulemap可以放在任何地方.我创建了一个名为modules的目录,与Xcode的项目文件(.xcodeproj)处于同一级别,并将module.modulemap文件放在那里.
然后将包含此文件的目录添加到Xcode项目的Build Settings下的Header Search Path.
在此示例中,您所要做的就是将单词模块添加到Header Search Path,因为modules目录与Xcode项目文件处于同一级别.这将在内部更新Xcode项目变量HEADER_SEARCH_PATHS.而已.
| 归档时间: |
|
| 查看次数: |
4118 次 |
| 最近记录: |