2015-04-25 9 views
7

Ben çerçevesi ince yapı, ama ne zaman ben ediliriOS: libxml

libxml.dylib dayanmaktadır kendi çerçevesini TouchXML kullanır 'VBL' inşa etmeye çalışıyorum ile "non-modüler başlığının dahil et" herhangi bir projede kullanmak çalışıyorum, ben şu hata var:

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

Ve bu, çünkü benim çerçevesi içindeki başlık CXMLNode.h özel olarak, ben şöyle libxml eklemek zorunda:

#include <libxml/tree.h> 

Aşağıdaki özelliği Yapılandırma Ayarları içinde YES olarak ayarlamak güvenli midir?

allow non-modular included in framework modules 

Ancak bu yine de Swift ile çalışmaz, başka önerileriniz var mı?

+0

Öyle mi kullanabilirsiniz Sorunu çöz – Loegic

cevap

4

#include <libxml/tree.h>'u özel bir başlıkta veya mümkünse .m dosyasında gizlemeye çalışabilirsiniz.

Ayrıca içeride hızlı derleyici aptal libxml kök başlığıyla bir module.modulemap dosya oluşturmak için deneyebilirsiniz:

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

Sonra örneğin bir klasöre, Modül/module.modulemap- içine dosyasını yerleştirin. Eğer hedefin build setting ait swift compiler search path bölümünde import paths yılında bağlamak, ve gerektiği yaptılar kez

hedefin header search path:

$(SRCROOT)/module 

Sonra kodunda, sen @import libxml;

+0

Loegic'e teşekkürler, işe yarıyor ama podspec içinde nasıl güncellenebilir? –

+0

@ios_user, Üzgünüm, ama sorumu anlamıyorum? Bir bağımlılığı güncellemek mi istiyorsun? – Loegic

+0

pod modulemapp dosyasını pod'lar listesindeki eksik no modüler üstbilgiyi eklemek için düzenliyorum, ancak podspec dosyasında el ile düzenlemek yerine podspec dosyasında el ile düzenleme yapmak istemiyorum, Çalışmıyor –