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/* и перестроить проект, и это сработало для меня.