Xcode 12 Framework: 'Double-quoted include in framework header, expected angle-bracketed instead'

I've got an iOS framework that I've had around for ages. It's a mixture of Objective-C and Swift.

Since installing Xcode 12, I'm now getting a bunch of warnings of the type:

'Double-quoted include in framework header, expected angle-bracketed instead'

If I go to the various source files and say change:

Code Block
#import "Place.h"

to

Code Block
#import <VegasKit/Place.h>

then I get an error saying it can't find the file. If I try this:

Code Block
#import <Place.h>

then I get an error telling me to go back to double-quotes, i.e. undo the change.

Any idea what I can do to get this all setup correctly? Thanks.

Post not yet marked as solved Up vote post of Hunter Down vote post of Hunter
23k views

Replies

I am experiencing this exact issue. Not sure how to resolve this now, short of setting the CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER build setting to NO.
Post not yet marked as solved Up vote reply of RCP Down vote reply of RCP
Did you managed to resolve your issue ?
I encountered the same issue but the compiler throws errors, not just warnings, so the build fails. I use Firebase which is at least partially written in objective-c. The errors occur in the nanopb-umbrella.h header file in the pod nanopb which is apparently a dependency of GoogleDataTransport which is in itself a dependency of Firebase. When I replace the import header angle brackets with quotes, the compiler complains that the quotes should be replaced with angled brackets. No idea how to resolve this issue.

I created a test project in Xcode 12 (the other one I began with Xcode 11 and I would like to continue supporting iOS 13 for a while..) and added all Firebase pods. The project builds without any problem. When I check the nanopb-umbrella.h file... I find quotes instead of angled brackets!
I tried to replace angled brackets with double quotes manually, but then the build fails again and the errors say 'expected angled brackets instead'. Very contradictory indeed....
Any hints in the right direction would be welcome.
This finally helped to solve the issue:
rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Caches/CocoaPods/
pod deintegrate
pod update

https://stackoverflow.com/questions/58540898/update-my-pod-causes-error-in-googledatatransport-umbrella-header

Although my app builds now in Xcode 12 beta 5, there are a lot of runtime errors suddenly that did not occur under Xcode 11.6... ok, this is a bit off-topic here.
Xcode 12 GM does this too. Has anyone found a reasonable fix???
Worked for me:
Code Block
rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Caches/CocoaPods/
pod deintegrate
pod update

env:
Code Block
CocoaPods : 1.9.3
Ruby : ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
RubyGems : 3.0.3
Host : Mac OS X 10.15.7 (19H2)
Xcode : 12.0.1 (12A7300)
Git : git version 2.24.3 (Apple Git-128)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib


We have the same problem on Xcode 12.
This is because Xcode 12 expects to use imports with <> instead of "" on umbrella headers. Thus this is a cocoapods issue, you can find more info here.

The fix I used was using the latest version of cocoapods which has this fix, as for now 1.10.0.rc.1.
I ran into a similar issue when building my project in AppCenter. rgkobashi's solution seems to be the right answer
https://developer.apple.com/forums/thread/651941?answerId=640461022#640461022

I already had this version on my local machine so builds were working fine. Then AppCenter kept throwing the OP's error. If you're getting this locally, upgrade CocoaPods. If your CI is getting this error, force the CocoaPods version to 1.10.0.rc.1.

In AppCenter that would be done by creating a appcenter-post-clone.sh file and adding these lines
Code Block
echo "uninstalling all cocoapods versions"
sudo gem uninstall cocoapods --all
echo "installing cocoapods version 1.10.0.rc.1"
sudo gem install cocoapods -v 1.10.0.rc.1

Please note that I am NOT using Cocoapods and simply drag-install the Firebase frameworks manually into Xcode, and still the same warnings appear. This means it's probably not a Cocoapods issue.

If the file is actually a framework header, include this line at the top of it:

#pragma clang system_header

See the relevant clang manual page for more information: https://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-in-system-headers

I had the same issue and this resolved it:

rm -rf ~&#x2F;Library&#x2F;Developer&#x2F;Xcode&#x2F;DerivedData&#x2F;
rm -rf ~&#x2F;Library&#x2F;Caches&#x2F;CocoaPods&#x2F;
pod deintegrate
pod update

Added a new pod target to a very old project. got that error. heres my steps that worked. I had to uninstall cocoapods completely it removed about 5 old versions and wiped the whole workspace file

sudo gem uninstall cocoapods --all
sudo gem install cocoapods

&#x2F;&#x2F;delete Derived Data - you could try just deleting the folder for your project but project only built when I wiped it all
rm -rf ~&#x2F;Library&#x2F;Developer&#x2F;Xcode&#x2F;DerivedData&#x2F;

rm -rf ~&#x2F;Library&#x2F;Caches&#x2F;CocoaPods&#x2F;

pod deintegrate

&#x2F;&#x2F;delete the *.workspace file

pod update
open workspace

The following did the trick for me:

rm -rf ~/Library/Developer/Xcode/DerivedData/

rm -rf ~/Library/Caches/CocoaPods/

pod deintegrate

pod update

I tried most things in this post but none work for me. My project was located in my iCloud/Documents folder and I suspected that maybe some files were having issues syncing with iCloud.

Anyways, I re-cloned my project into my user/ root directory instead to avoid any potential sync issues to iCloud and it seems to have resolved my issue. Hope this may help someone.