Cocoapods 1.0: файлы заголовков не найдены

Я просто пытался обновить с cocoapods 0.39.x до Cocoapods 1.0. Запуск

pod install

от терминала не вызывает никаких предупреждений. Все кажется нормальным. Однако, когда я пытаюсь построить свой проект, он выводит:

Файл AFNetworking/AFNetworking.h не найден

Мой файл pod выглядит так (есть еще несколько зависимостей, но я только перечислял его часть):

platform :ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

target 'MyApp' do
    pod 'AFNetworking', '~> 2.6'
    pod 'BEMCheckBox'
    pod 'ActionSheetPicker-3.0', '~> 2.0.5'
    pod 'SCLAlertView'
    pod 'DZNEmptyDataSet'
    pod 'SSZipArchive'
end


target 'MyAppTests' do

end

Так как некоторые проекты написаны в Objective-C, я создал заголовок моста:

#import <AFNetworking/AFNetworking.h>
#import <ActionSheetPicker_3_0/ActionSheetPicker.h>
#import <SSZipArchive/SSZipArchive.h>
#import <DZNEmptyDataSet/UIScrollView+EmptyDataSet.h>

Я явно включил $(inherited) в Header Search Paths, User Header Search paths и Framework Search paths, но ошибка не исчезла. У кого-то есть идея, как это исправить?

Ответ 1

Сообщение об ошибке довольно вводит в заблуждение. Сначала я думал, что у меня есть некоторые проблемы с моими способами поиска заголовков, поэтому я в основном пробовал все, что я нашел в stackoverflow.

Если вы используете use_frameworks! в вашем подфайле, вам не нужно включать каждый модуль Objective-C в заголовок моста.. Вам нужно сделать это только в том случае, если pod распространяется как статическая библиотека, а не как структура.

Я сделал следующее

  • Нажмите Cmd + option + shift + k, чтобы очистить папку сборки
  • Выполнить pod install
  • Удалите строки в заголовке моста, где он сообщает вам, что файлы заголовков не найдены и используют простой оператор импорта всякий раз, когда вы хотите использовать этот модуль в одном конкретном файле Swift, например. import AFNetworking

Ответ 2

Я попробовал удалить ~/Library/Developer/Xcode/DerivedData/* и перестроить проект, и это сработало для меня.