Стручки / Заголовки пустые после установки модуля
Раньше в моем проекте (полностью работающем проекте) был функциональный набор модулей.pod install
запустить, теперь я получаю ошибки "файл не найден" для заголовков, упомянутых в моем заголовке моста (это проект Swift с Obj-C включает). После некоторого исследования казалось, что должны быть символические ссылки на заголовки вPods/Headers
этот каталог для меня пуст. Тем не менее, сами стручки были загружены и все соответствующиеPods/[Lib]
каталоги существуют.
То, что я изменил перед тем, как возникла эта ошибка, указыв:git
а также:commit
флаги для одной из библиотек, которые я вытащил. Затем я сноваpod install
и начал видеть ошибки «файл не найден». В то время я использовал Cocoapods 0.39
Я пробовал несколько решений из других потоков переполнения стека, в том числе добавлениеUser Header Search Paths
, который не имел никакого эффекта (теперь вернулось к оригиналу) и обновлял мои cocoapods. Моя текущая версия cocoapods сейчас 1.0.0.beta.6. Помимо дополнительных проблем, с которыми я столкнулся, таких как необходимость переписывать части моего Podfile для соответствия новым стандартам, теперь я, похоже, вернулся в то же состояние (все библиотеки успешно загружаются, но заголовки не могут быть найдены).
Вот пример того, как я включаю мои заголовки в заголовок моста:
// In this header, you should import all the public headers of your framework using statements like #import <MyKit/PublicHeader.h>
#import <CocoaLumberjack/CocoaLumberjack.h>
И вот как выглядит мой Podfile (я попытался уменьшить его, чтобы избежать ненужного контента):
source 'https://github.com/CocoaPods/Specs'
platform :ios, '8.0'
use_frameworks!
pod 'CocoaLumberjack', '2.0.0'
pod 'SwiftyJSON', '~> 2.3'
pod 'Classy', :git => 'https://github.com/ClassyKit/Classy.git', :commit => 'c319908f8bded62e268dfd48ee5d65329b819129'
workspace 'my.work-ios'
project 'mywork' # sdk
project 'Examples/example1' # sample project using sdk
project 'my.work-ios.xcodeproj' # placeholder for main project, not really in use
target 'UnitTests' do
pod 'Specta'
pod 'Expecta'
pod 'OCMock'
pod 'OHHTTPStubs'
end
# Copy acknowledgements to the Settings.bundle
post_install do | installer |
require 'fileutils'
pods_acknowledgements_path = 'Pods/Target Support Files/Pods/Pods-Acknowledgements.plist'
settings_bundle_path = Dir.glob("**/*Settings.bundle*").first
if File.file?(pods_acknowledgements_path)
puts 'Copying acknowledgements to Settings.bundle'
FileUtils.cp_r(pods_acknowledgements_path, "#{settings_bundle_path}/Acknowledgements.plist", :remove_destination => true)
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['OTHER_SWIFT_FLAGS'] = "-DLEGACY"
end
end
end
ОбновитьПосле еще нескольких копаний я обнаружил, что виновникuse_frameworks!
команда, пропуская ее (и в свою очередь удаляя библиотеки Swift, потому что это требуется для них), вызываетPods/Headers
быть заселеннымPrivate
а такжеPublic
каталоги, а также символические ссылки для соответствующих заголовков.
Это было не так в предыдущей версии cocoapods, и я все еще пытаюсь понять, что происходит, потому что пропуск этой команды для меня не подходит (учитывая библиотеки Swift, которые я использую в своем приложении).
Обновление 2Это уже упоминалось в комментариях, но для удобства я также выкладываю это здесь. Кажется, это вызвано ошибкой, сообщенной в этой теме:https://github.com/CocoaPods/CocoaPods/issues/4605#issuecomment-208822149, В ветке также предлагается несколько обходных путей, которые могут быть достаточно хорошими для некоторых. Для меня их не было, поэтому я вернулся к 0,39.