2015-06-02 3 views
4

Я создал Swift pod (podspec), который зависит от стручка, написанного в Objective-C. В моем подспепе я использую:Мостовой заголовок для Swift Pod с зависимым Objective-C Pod?

s.dependency 'ObjectiveCPod', '~>3.2.1' 

Чтобы указать зависимый элемент. Чтобы использовать его, мне нужен мостовой заголовок, который устанавливается автоматически, когда мой Swift-модуль установлен. Я не хочу создавать заголовок моста в моем проекте, чтобы интегрировать файлы заголовков объектов-c-файлов.

Как настроить мой podspec таким образом, чтобы заголовочный файл с мостом был автоматически интегрирован и связан в моем проекте, когда я устанавливаю мой модуль Swift?

+0

Я не уверен в этом; для использования Swift с Cocoapods вам необходимо использовать фреймворки! ». Так что, конечно, вам нужно указать заголовок моста, когда Cocoapods строит фреймворк для вашего контейнера? Отложить перемычку на фазу компиляции, которая пытается связать с вашей картой, конечно, не имеет смысла? (и нет, у меня нет рабочего ответа, но я пытаюсь понять это сейчас) – Tommy

ответ

0

CocoaPods генерирует заголовок зонтика для рамки, созданной для вашего Swift pod. Это импортирует все публичные заголовки, определенные в podspec. Все, что есть транзитивно, импортированное из заголовка зонтика, доступно в модуле Clang вашего фреймворка. Поэтому просто добавьте заголовок в свой проект, который импортирует все необходимое из вашей зависимости Objective-C и объявляет его публичным заголовком в вашем podspec.

Если у вас есть проект по созданию и тестированию вашего модуля, вы все равно хотите импортировать этот заголовок в заголовок зонтика по умолчанию, который по умолчанию совпадает с именем вашей фреймворк и является частью шаблона из Xcode.

В качестве альтернативы вы должны иметь возможность импортировать зависимость Objective-C с помощью @import ObjectiveCPod из Swift.

+0

Я не понимаю. Мне нужно импортировать 'MyObjcHeader.h''. Не могли бы вы привести пример, где его поставить? – confile

+0

Не могли бы вы также привести пример для '' @ import''. – confile

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