Надеясь, что кто-то уже решил это; Я пытаюсь обернуть стороннюю библиотеку (Airwatch) в какаопод для лучшего управления нашими приложениями. Однако я чертовски мучаюсь, пытаясь заставить это работать. Я создал модуль вокруг статической библиотеки, но это динамический фреймворк, и у меня чертовски много времени на его компиляцию. Заголовки из фреймворка просто недоступны в содержащем приложении....
Вот что я уже пробовал:
- Когда я устанавливаю vendored_libraries в podspec, я не могу получить доступ к заголовкам ни с кавычками, ни с ‹>. Xcode просто жалуется как «Не найдено»
Затем я попытался добавить путь к заголовкам в фреймворке как исходные_файлы, например так
s.source_files = 'Pod/Classes/**/*','Pod/Framework/AWSDK.framework/Versions/A/Headers/*.h'
Это позволяет xcode найти заголовок для импорта, например:
import "AWSDKCore.h" //Documented as the framework's main header
Но это вызывает ошибку для существующего импорта в исходной структуре:
Я подумал, что это плохая идея, но я решил попробовать назвать свой cocopod тем же именем, что и Framework (который должен сохранить путь импорта). Итак, это выдает кучу ошибок, говорящих о том, что некоторые перечисления либо не объявлены, либо объявлены дважды.
Если у кого-то есть мысли, буду бесконечно благодарен...
Просто для справки вот мой podspec:
Pod::Spec.new do |s|
s.name = "AirwatchSDK"
s.version = "0.1.0"
s.summary = "A short description of AirwatchSDK."
s.homepage = "https://github.com/<GITHUB_USERNAME>/AirwatchSDK"
s.license = 'MIT'
s.author = { "xxxxx" => "xxxx" }
s.source = { :git => "https://github.com/<GITHUB_USERNAME>/AirwatchSDK.git", :tag => s.version.to_s }
s.platform = :ios, '8.0'
s.requires_arc = true
#s.module_name = 'AWSDK'
s.source_files = 'Pod/Classes/**/*','Pod/Framework/AWSDK.framework/Versions/A/Headers/*.h'
s.vendored_frameworks = 'Pod/Framework/AWSDK.framework'
s.frameworks = 'CFNetwork','CoreData','CoreFoundation','CoreGraphics','CoreLocation','CoreTelephony','CoreText'
s.libraries = 'stdc++','z','sqlite3','c++'
end