В моем cocoapod для iOS есть, по сути, следующие элементы:
- Классы с открытым исходным кодом (файлы .m и .h)
- MyFramework.framework (каталог .framework, файлы заголовков и .bundle для ресурсов)
Один из классов с открытым исходным кодом вызывает import <MyFramework.MyFramework.h>
, чтобы он мог использовать компоненты MyFramework в своей реализации. Но из-за этого у меня возникают проблемы с тем, чтобы podspec прошел тест spec lint (pod spec lint MyCocoapod.podspec
). Когда я запускаю проверку spec lint, он говорит:
ERROR | [iOS] [xcodebuild] .../MyFile.h:54:9: fatal error: 'MyFramework/MyFramework.h' file not found
Во время расследования я заметил, что podspec действительно проходит проверку spec lint, если я удалю этот класс с открытым исходным кодом в разделе 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