В моей cocoapod для прошивки, у меня есть по существу пунктов:Cocoapods импортирующих рамки к исходному коду
- с открытым исходным кодом (классы .m & .h файлами)
- MyFramework.framework (каталог .framework , заголовочные файлы и .bundle для ресурсов)
Один из классов с открытым исходным кодом вызывает import <MyFramework.MyFramework.h>
, поэтому он может использовать компоненты MyFramework в своей реализации. Но из-за этого у меня возникли проблемы с получением podspec для прохождения теста spec lint (pod spec lint MyCocoapod.podspec
). При запуске проверки спецификации ворса, он говорит:
ERROR | [iOS] [xcodebuild] .../MyFile.h:54:9: fatal error: 'MyFramework/MyFramework.h' file not found
Расследуя, я заметил, что podspec действительно проходит проверку спецификации ворса, если удалить этот класс с открытым исходным кодом в SOURCE_FILES секции podspec в, s.source_files = 'MyFiles.{h,m}'
. Любая идея, почему мой класс не может импортировать мою пользовательскую структуру во время проверки спецификации?
Соответствующий код в podspec выглядит следующим образом:
s.preserve_paths = 'myframework/MyFramework.framework'
s.frameworks = 'Foundation', 'MyFramework'
s.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '$(SRCROOT)/myframework/' }
s.public_header_files = 'MyFramework.framework/Headers/*.h', 'SourceCode/*.h'
s.source_files = 'SourceCode/*.{h,m}' # Crashes here - Source_file imports MyFramework.h. If I take this out, it passes spec lint validation
Спасибо за ваш ответ. Так что, если мой кокоапод был ** просто ** рамкой, это работает. Но у pod также есть некоторые файлы source_code (.m & .h), которые также должны быть распределены. В исходном_коде (.m) моего модуля происходит '#import', и именно там, где спецификация lint не выполняет проверку. –
johngraham
Добавление 'source_files' в podspec также не должно влиять на импорт вашей инфраструктуры. Какова ошибка, которую CocoaPods показывает в ворсе? (Также убедитесь, что вы используете новейшую версию 'gem update') –
Хмм, ошибка выше в поле вопроса ...' ERROR | ... '. (Я просто добавил соответствующий код из моего podspec) Возможно, я не правильно импортирую фреймворк, поэтому исходные файлы также не могут импортировать фреймворк правильно. Я исследую это и вернусь к вам. – johngraham