2015-08-28 3 views
6

Ich habe eine benutzerdefinierte module map Datei für den Import der libxml in einem schnellen Projekt. (non-modular include Fehler)Definieren Sie benutzerdefinierte Modul-Kartendatei in Cocoapods Podspec

Es funktioniert großartig, wenn ich es manuell tun, aber cocoapods nicht finden/lösen Sie das Modul, wenn ich zu pod lint versuchen, ein einfaches Projekt einen Import aus diesem benutzerdefinierten Modul enthält.

versuchte ich s.module_map = "module/module.modulemap" zusammen mit

core.xcconfig = { 'HEADER_SEARCH_PATHS' => ‚$ (SDKROOT)/usr/include/libxml2 $ (SRCROOT)/Modul $ (SDKROOT)/usr/include/libresolv‘, 'OTHER_LDFLAGS' => ' "-lxml2"', 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'JA', 'ENABLE_BITCODE' => 'NEIN', "SWIFT_INCLUDE_PATHS"=> "$ (SRCROOT)/Modul"

}

Jede Hilfe wäre willkommen.

Antwort

12

Ich habe es geschafft, dieses Problem zu beheben, indem Sie die pod_target_xcconfig Eigenschaft festlegen. Das komplette Teil sieht so aus:

s.preserve_path = 'module/module.modulemap' 
s.module_map = 'module/module.modulemap' 

core.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '$(PODS_ROOT)/mypod/module' } 
core.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2 $(PODS_ROOT)/mypod/module' } 
+0

Hey, ich habe den nicht modularen Fehler bekommen. Kannst du ein bisschen erklären, was du hier gemacht hast? Danke –

+0

Es hängt davon ab mit Header Sie haben einen modularen Header. Sie können versuchen, die @ import-Syntax zu verwenden, wenn Sie den Fehler in der Syntax #import <> haben. Hier erstellen Sie eine Modul.Modulmap-Datei, in der Sie die Deklaration Ihres Moduls (in meinem Fall libxml) ablegen. Dann fügen Sie es zu Ihren Build-Einstellungen hinzu, damit Xcode es verwenden kann, und kompilieren – Loegic

+1

Das Verschieben des libxml2-Verzeichnisses von 'pod_target_xcconfig' nach' xcconfig' hat den Trick für mich erledigt. Vielen Dank! – diegoreymendez

Verwandte Themen