-->

Cocoapods 1.0: Header files not found

2020-02-20 07:26发布

问题:

I just tried to update from cocoapods 0.39.x to Cocoapods 1.0. Running

pod install

from the terminal causes no warnings. Everything seems normal. However, when I try to build my project it outputs:

AFNetworking/AFNetworking.h file not found

My pod file looks like this (there are a few more dependencies but I only listed a part of it):

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

Since some projects are written in Objective-C, i created a bridging header:

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

I explicitly included $(inherited) in the Header Search Paths, the User Header Search paths, and the Framework Search paths but the error does not go away. Does someone have an idea on how to fix this?

回答1:

The error message is quite misleading. At first I thought I have some problems with my header search paths, so I basically tried everything I found on stackoverflow.

If you use use_frameworks! in your Podfile, you don't have to include every Objective-C pod in your bridging header. You only have to do this, if the pod is distributed as a static library, not as a framework.

I did the following

  1. Press Cmd + option + shift + k to clean your build folder
  2. Run pod install
  3. Delete the lines in your bridging header where it tells you that the header files are not found and use a simple import statement whenever you want to use that module in one specific Swift file, e.g. import AFNetworking


回答2:

I tried remove ~/Library/Developer/Xcode/DerivedData/* and rebuild the project, and it worked for me.