2015-04-25 3 views
7

Я пытаюсь построить свою собственную структуру «VBL», которая использует TouchXML, который основан на libxml.dylibIOS: «Включить в безмодульной заголовок» с Libxml

Каркас здания хорошо, но когда я пытаюсь использовать его в любом проекте, я получил следующее сообщение об ошибке:

"Include of non-modular header inside framework module VBL.CXMLNode" 

И это именно потому, что в заголовке CXMLNode.h внутри моей рамки, я должен включить LibXML следующим образом:

#include <libxml/tree.h> 

Можно ли установить следующее свойство внутри параметров сборки в положение ДА?

allow non-modular included in framework modules 

Но это не будет работать со Свифт в любом случае, поэтому любые другие предложения?

+0

ли вам решить свой вопрос? – Loegic

ответ

4

Вы можете попытаться скрыть #include <libxml/tree.h> в закрытом заголовке или в .m файле, если сможете.

Вы также можете попробовать создать module.modulemap файл с корнем заголовка Libxml внутри, чтобы обмануть быстрый компилятор:

module Libxml [system] { 
    header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h" 
    export * 
} 

Затем поместите файл в папку, -модуль/module.modulemap-, например.

После того, как вы сделали, что вы должны связать его в import paths в swift compiler search path части мишени build setting и к Таргет header search path:

$(SRCROOT)/module 

Тогда в вашем коде, вы можете использовать @import libxml;

+0

спасибо Loegic, он работает, но как можно обновить внутри podspec? –

+0

@ios_user, извините, но я не понимаю вопроса? Вы хотите обновить зависимость? – Loegic

+0

Я имею в виду, что я редактирую файл модуля modulemapp, чтобы добавить отсутствующий модульный заголовок внутри списка модулей, но если я хочу работать без редактирования вручную в контейнерах, а не внутри моего файла podspec, когда я делаю pod lint, 't work –

Смежные вопросы