Определить файл карты пользовательского модуля в Cocopods Podspec

Я создал собственный файл module map для обработки импорта libxml в быстром проекте. (non-modular include ошибка)

Это прекрасно работает, если я делаю это вручную, но cocoapods не находит/разрешает модуль, когда я пытаюсь pod lint создать простой проект, содержащий импорт из этого пользовательского модуля.

Я попробовал s.module_map = "module/module.modulemap" вместе с

core.xcconfig = {
  'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2 $(SRCROOT)/module $(SDKROOT)/usr/include/libresolv',
  'OTHER_LDFLAGS' => '"-lxml2"',
  'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
  'ENABLE_BITCODE' => 'NO',
  "SWIFT_INCLUDE_PATHS" => "$(SRCROOT)/module"
}

Любая помощь будет оценена по достоинству.


person Loegic    schedule 28.08.2015    source источник


Ответы (1)


Мне удалось решить эту проблему, установив свойство pod_target_xcconfig. Полная часть выглядит так:

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' }
person Loegic    schedule 02.09.2015
comment
Эй, я получил не модульную ошибку. Можете ли вы немного объяснить, что вы здесь делали? Спасибо - person La masse; 31.10.2015
comment
Это зависит от заголовка, у вас есть модульный заголовок. Вы можете попробовать использовать синтаксис @import, если у вас есть ошибка в синтаксисе #import ‹›. Здесь вы создаете файл module.modulemap, в котором размещаете объявление своего модуля (в моем случае libxml). Затем вы добавляете его в настройки сборки, чтобы Xcode мог его использовать, и компилируете - person Loegic; 02.11.2015
comment
Перемещение местоположения libxml2 с pod_target_xcconfig на xcconfig помогло мне. Благодарю вас! - person diegoreymendez; 06.09.2016
comment
Можете ли вы опубликовать свой module.modulemap файл для завершения? Я попробовал pod lint со всеми возможными вариантами приведенных выше примеров, но не смог добиться успеха. Вам все еще нужно связать xml2 с s.libraries = 'xml2'? - person rpitting; 07.11.2016
comment
@Loegic, можете ли вы опубликовать содержимое вашего файла .modulemap? - person Martin; 17.08.2017
comment
@ Сайрус, это было давно, но я думаю, что если вы будете искать в моем другом ответе, вы найдете пример - person Loegic; 21.08.2017