GoogleDataTransport is throwing Double-quoted include in framework header expected angle-bracketed error on iOS14
SwiftCocoapodsIos14Swift Problem Overview
I've just update XCode to Version 12 and I'm using Firebase. I've updated pods as well but when I build the project it's giving me error:
Double-quoted include "pb.h" in framework header, expected angle-bracketed instead
These errors are multiple and in the pod of GoogleDataTransport
Even if I replace ""
with <>
it still doesn't go away.
Swift Solutions
Solution 1 - Swift
Apparently installing cocoapods version 1.10.0 fixes it all.
If that doesn't work for you, please continue reading.
There's lots of temp fixes that'll definitely work for you.
Here's the command to uninstall and reinstall that 1.10.1 version:
gem uninstall cocoapods; gem install cocoapods -v '1.10.1'
>>>>>> ONLY CONTINUE READING IF THE ABOVE DIDN'T WORK FOR YOU.
If you are an experienced Xcode user, just look at the image below, you'll know exactly what to do, else feel free to follow the detailed steps.
If updating cocoapods
didn't work for you, try this...which worked for me.
> Please note: This is a workaround. Once cocoapods
fix this in future releases, please update cocoapods instead of doing the workaround.
>
> @iHS has a great temp cocoapods fix
>
> @haley-huynh has a great cocoapods update example.
>
> @bogdan-razvan Said that running sudo gem install cocoapods
fixed the problem for him ... Maybe give it a shot if not already!
>
> All of those are worth giving a shot before this workaround.
With that said, we don't always have time to wait for fix releases ...So open Xcode and let's get to the workaround.
Step 1: Navigate
- In your navigator (Project files on the left), click on
Pods
(It usually has this blue xcode file next to it). Once you clicked on it, it should have opened the pods targets and settings on the right.
Step 2: Build Settings
- Select
Build Settings
and then also make sureAll
is selected out of the three build settings filter types (Basic
,Customized
andAll
)
Step 3: Search
- In the build settings, search for
quoted include
. - You should now see the setting
Quoted Include In Framework Header
Step 4: Set to No
- Change the value of the setting
Quoted Include In Framework Header
toNo
Step 4: Rebuild
- Rebuild that sexy project of yours!
Step 5: Don't be fooled
- After rebuilding your project. If you still see errors, make sure to checkout what those errors are because it surely isn't the quote errors.
Solution 2 - Swift
Looks like this issue is fixed as part of Cocoapods 1.10.1
(not officially released, as of this writing). However, you can use Cocoapods version 1.10.0.rc.1
temporarily until 1.10.1 is officially available.
gem install cocoapods -v '1.10.0.rc.1'
Alternative solution
Another option is to update your Podfile (add below code) to disable the warning flag CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER
setting for all pods in your project.
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER'] = 'NO'
end
end
end
end
Solution 3 - Swift
rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Caches/CocoaPods/
pod deintegrate
pod update
Solution 4 - Swift
I solved by updating CocoaPods to the latest stable version, which is 1.9.3, running sudo gem install cocoapods
.
After that i updated all my pods with pod update
and updated the swift version in Podfile to the last available
> config.build_settings['SWIFT_VERSION'] = '5.3'
I checked that the Clang warnings where turned off in Pod's project tab AND GoogleDataTranport's target tag image. As mentioned in https://github.com/firebase/firebase-ios-sdk/issues/5987.
Finally I cleared the build folder with CMD+Shift+K
and re-run the project with CMD+R
Solution 5 - Swift
https://github.com/firebase/firebase-ios-sdk/issues/5987
The error comes from a new recommended Xcode 12 build setting. We'll investigate an update to nanopb.
In the meantime a workaround is disabling the option in the generate Pods project Build Settings:
Solution 6 - Swift
It's a new warning setting in Xcode 12. The issue is gone after updating the pods. And it works until you apply the recommended settings which includes a new warning. After enabling the recommended warnings, the following setting is added to the project file (project.pbxproj), which breaks the compatibility with GoogleDataTransport:
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
So, for now, just update your pods and don't update the pods project to the recommended settings. Alternatively, you could update to recommended settings and manually reset the flag afterwards to NO
.
Solution 7 - Swift
The solutions about setting the CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER didn't work for my XCode version that is 12.1. Then I checked my cococapods that was 1.9.3, updated to 1.10.1. After that it all started working.
Solution 8 - Swift
To fix this,
Goto Pods > build settings > search for "quoted include" > under "Quoted include in framework header" choose "No"
Xcode version 12.4
Cocoapod version 1.8.4