问题
I'm using cocoapod version /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.7.3/lib/cocoapods.rb
, Swift 5
, and Xcode 10.2.1
. I cleaned the derived data.
I just updated to Swift 5 (just got a cpu that could support MoJave) and when I try to build my project I keep getting the error
FirebaseCore Lexical or preprocessor issue 'GoogleUtilities/GULAppEnvironmentUtil.h' file not found
Before I updated this never happened before in my old project.
It seems it's specifically coming from Firebase/Core
I did a cmmd+4 for a search and other files use it but they aren't complaining
I tried:
$ pod deintegrate
$ pod clean
$ rm Podfile
$ pod init
$ pod install
$ pod repo remove master // also sudo rm -fr ~/.cocoapods/repos/master
$ pod repo update
$ pod setup
$ pod install
$ pod update
But the error won't go away. How can I fix this?
Here is my pod file:
target 'MyApp' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for MyApp
pod 'Stripe'
pod 'DLRadioButton', '~> 1.4'
pod 'GeoFire', :git => 'https://github.com/firebase/geofire-objc.git'
pod 'AFNetworking'
pod 'Alamofire'
pod 'SwiftyJSON'
pod 'SDWebImage'
pod 'Fabric'
pod 'Crashlytics'
pod 'KeychainSwift'
pod 'IQKeyboardManagerSwift'
pod 'HMSegmentedControl'
pod 'NKVPhonePicker'
pod 'FlagPhoneNumber'
pod 'MetalPetal'
pod "SwiftPhoneNumberFormatter"
pod 'CountryPickerView'
pod 'mailcore2-ios'
pod 'Cosmos'
pod 'GoogleInterchangeUtilities'
pod 'GoogleNetworkingUtilities'
pod 'GoogleParsingUtilities'
pod 'GoogleSymbolUtilities'
pod 'GoogleUtilities'
#pod 'Firebase'
pod 'Firebase/Core'
pod 'Firebase/Storage'
pod 'FirebaseInstanceID'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/DynamicLinks'
pod 'Firebase/Crash'
pod 'Firebase/Messaging'
pod 'GooglePlacesAPI'
pod ‘GoogleMaps’
pod 'GooglePlaces'
pod 'GooglePlacePicker'
pod 'GoogleSignIn'
pod 'GoogleAnalytics'
pod 'ReachabilitySwift'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = ‘5.0’
end
end
end
end
Podfile.Lock
PODS:
- AFNetworking (3.2.1):
- AFNetworking/NSURLSession (= 3.2.1)
- AFNetworking/Reachability (= 3.2.1)
- AFNetworking/Security (= 3.2.1)
- AFNetworking/Serialization (= 3.2.1)
- AFNetworking/UIKit (= 3.2.1)
- AFNetworking/NSURLSession (3.2.1):
- AFNetworking/Reachability
- AFNetworking/Security
- AFNetworking/Serialization
- AFNetworking/Reachability (3.2.1)
- AFNetworking/Security (3.2.1)
- AFNetworking/Serialization (3.2.1)
- AFNetworking/UIKit (3.2.1):
- AFNetworking/NSURLSession
- Alamofire (4.8.2)
- Cosmos (19.0.3)
- CountryPickerView (3.0.1)
- Crashlytics (3.13.2):
- Fabric (~> 1.10.2)
- DLRadioButton (1.4.12)
- Fabric (1.10.2)
- Firebase/Analytics (3.6.0):
- FirebaseAnalytics (= 3.4.2)
- Firebase/Auth (6.3.0):
- Firebase/CoreOnly
- FirebaseAuth (~> 6.1.2)
- Firebase/Core (3.6.0):
- Firebase/Analytics
- Firebase/CoreOnly (6.3.0):
- FirebaseCore (= 6.0.3)
- Firebase/Crash (3.6.0):
- Firebase/Analytics
- FirebaseCrash (= 1.0.7)
- Firebase/Database (6.3.0):
- Firebase/CoreOnly
- FirebaseDatabase (~> 6.0.0)
- Firebase/DynamicLinks (6.3.0):
- Firebase/CoreOnly
- FirebaseDynamicLinks (~> 4.0.0)
- Firebase/Messaging (3.6.0):
- Firebase/Analytics
- FirebaseMessaging (= 1.2.0)
- Firebase/Storage (6.3.0):
- Firebase/CoreOnly
- FirebaseStorage (~> 3.2.1)
- FirebaseAnalytics (3.4.2):
- FirebaseInstanceID (~> 1.0)
- GoogleInterchangeUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- GoogleUtilities (~> 1.2)
- FirebaseAnalyticsInterop (1.2.0)
- FirebaseAuth (6.1.2):
- FirebaseAuthInterop (~> 1.0)
- FirebaseCore (~> 6.0)
- GoogleUtilities/AppDelegateSwizzler (~> 6.2)
- GoogleUtilities/Environment (~> 6.2)
- GTMSessionFetcher/Core (~> 1.1)
- FirebaseAuthInterop (1.0.0)
- FirebaseCore (6.0.3):
- GoogleUtilities/Environment (~> 6.0)
- GoogleUtilities/Logger (~> 6.0)
- FirebaseCrash (1.0.7):
- FirebaseAnalytics (~> 3.2)
- FirebaseInstanceID (~> 1.0)
- GoogleInterchangeUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- GoogleUtilities (~> 1.2)
- FirebaseAnalyticsInterop (1.2.0)
- FirebaseAuth (6.1.2):
- FirebaseAuthInterop (~> 1.0)
- FirebaseCore (~> 6.0)
- GoogleUtilities/AppDelegateSwizzler (~> 6.2)
- GoogleUtilities/Environment (~> 6.2)
- GTMSessionFetcher/Core (~> 1.1)
- FirebaseAuthInterop (1.0.0)
- FirebaseCore (6.0.3):
- GoogleUtilities/Environment (~> 6.0)
- GoogleUtilities/Logger (~> 6.0)
- FirebaseCrash (1.0.7):
- FirebaseAnalytics (~> 3.2)
- FirebaseInstanceID (~> 1.0)
- GoogleInterchangeUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- GoogleUtilities (~> 1.2)
- FirebaseDatabase (6.0.0):
- FirebaseAuthInterop (~> 1.0)
- FirebaseCore (~> 6.0)
- leveldb-library (~> 1.18)
- FirebaseDynamicLinks (4.0.0):
- FirebaseAnalyticsInterop (~> 1.0)
- FirebaseCore (~> 6.0)
- FirebaseInstanceID (1.0.9)
- FirebaseMessaging (1.2.0):
- FirebaseAnalytics (~> 3.3)
- FirebaseInstanceID (~> 1.0)
- GoogleInterchangeUtilities (~> 1.2)
- GoogleIPhoneUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- FirebaseStorage (3.2.1):
- FirebaseAuthInterop (~> 1.0)
- FirebaseCore (~> 6.0)
- GTMSessionFetcher/Core (~> 1.1)
- FlagPhoneNumber (0.7.6):
- FlagPhoneNumber/libPhoneNumberiOS (= 0.7.6)
- FlagPhoneNumber/libPhoneNumberiOS (0.7.6)
- GeoFire (3.0.0):
- Firebase/Database (~> 6.0)
- GoogleAnalytics (3.17.0)
- GoogleInterchangeUtilities (1.2.2):
- GoogleSymbolUtilities (~> 1.1)
- GoogleIPhoneUtilities (1.2.1):
- GoogleSymbolUtilities (~> 1.0)
- GoogleUtilities (~> 1.0)
- GoogleMaps (3.1.0):
- GoogleMaps/Maps (= 3.1.0)
- GoogleMaps/Base (3.1.0)
- GoogleMaps/Maps (3.1.0):
- GoogleMaps/Base
- GoogleNetworkingUtilities (1.2.2):
- GoogleSymbolUtilities (~> 1.1)
- GoogleParsingUtilities (1.1.2):
- GoogleNetworkingUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- GooglePlacePicker (3.1.0):
- GoogleMaps (= 3.1.0)
- GooglePlaces (= 3.1.0)
- GooglePlaces (3.1.0):
- GoogleMaps/Base (= 3.1.0)
- GooglePlacesAPI (1.1.4):
- Alamofire (~> 4)
- ObjectMapper (~> 3)
- GoogleSignIn (4.4.0):
- "GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1)"
- "GoogleToolboxForMac/NSString+URLArguments (~> 2.1)"
- GTMSessionFetcher/Core (~> 1.1)
- GoogleSymbolUtilities (1.1.2)
- GoogleToolboxForMac/DebugUtils (2.2.1):
- GoogleToolboxForMac/Defines (= 2.2.1)
- GoogleToolboxForMac/Defines (2.2.1)
- "GoogleToolboxForMac/NSDictionary+URLArguments (2.2.1)":
- GoogleToolboxForMac/DebugUtils (= 2.2.1)
- GoogleToolboxForMac/Defines (= 2.2.1)
- "GoogleToolboxForMac/NSString+URLArguments (= 2.2.1)"
- "GoogleToolboxForMac/NSString+URLArguments (2.2.1)"
- GoogleUtilities (1.3.2):
- GoogleSymbolUtilities (~> 1.1)
- GoogleUtilities/AppDelegateSwizzler (6.2.1):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- GoogleUtilities/Environment (6.2.1)
- GoogleUtilities/Logger (6.2.1):
- GoogleUtilities/Environment
- GoogleUtilities/Network (6.2.1):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (6.2.1)"
- GoogleUtilities/Reachability (6.2.1):
- GoogleUtilities/Logger
- GTMSessionFetcher/Core (1.2.2)
- HMSegmentedControl (1.5.5)
- IQKeyboardManagerSwift (6.4.0)
- KeychainSwift (16.0.1)
- leveldb-library (1.20)
- mailcore2-ios (0.6.4)
- MetalPetal (1.4.4):
- MetalPetal/Core (= 1.4.4)
- MetalPetal/Core (1.4.4)
- NKVPhonePicker (2.1.0)
- ObjectMapper (3.5.1)
- ReachabilitySwift (4.3.1)
- SDWebImage (5.0.6):
- SDWebImage/Core (= 5.0.6)
- SDWebImage/Core (5.0.6)
- Stripe (15.0.1)
- SwiftPhoneNumberFormatter (1.5)
- SwiftyJSON (5.0.0)
DEPENDENCIES:
- AFNetworking
- Alamofire
- Cosmos
- CountryPickerView
- Crashlytics
- DLRadioButton (~> 1.4)
- Fabric
- Firebase/Auth
- Firebase/Core
- Firebase/Crash
- Firebase/Database
- Firebase/DynamicLinks
- Firebase/Messaging
- Firebase/Storage
- FirebaseInstanceID
- FlagPhoneNumber
- GeoFire (from `https://github.com/firebase/geofire-objc.git`)
- GoogleAnalytics
- GoogleInterchangeUtilities
- GoogleMaps
- GoogleNetworkingUtilities
- GoogleParsingUtilities
- GooglePlacePicker
- GooglePlaces
- GooglePlacesAPI
- GoogleSignIn
- GoogleSymbolUtilities
- GoogleUtilities
- HMSegmentedControl
- IQKeyboardManagerSwift
- KeychainSwift
- mailcore2-ios
- MetalPetal
- NKVPhonePicker
- ReachabilitySwift
- SDWebImage
- Stripe
- SwiftPhoneNumberFormatter
- SwiftyJSON
SPEC REPOS:
https://github.com/cocoapods/specs.git:
- AFNetworking
- Alamofire
- Cosmos
- CountryPickerView
- Crashlytics
- DLRadioButton
- Fabric
- Firebase
- FirebaseAnalytics
- FirebaseAnalyticsInterop
- FirebaseAuth
- FirebaseAuthInterop
- FirebaseCore
- FirebaseCrash
- FirebaseDatabase
- FirebaseDynamicLinks
- FirebaseInstanceID
- FirebaseMessaging
- FirebaseStorage
- FlagPhoneNumber
- GoogleAnalytics
- GoogleInterchangeUtilities
- GoogleIPhoneUtilities
- GoogleMaps
- GoogleNetworkingUtilities
- GoogleParsingUtilities
- GooglePlacePicker
- GooglePlaces
- GooglePlacesAPI
- GoogleSignIn
- GoogleSymbolUtilities
- GoogleToolboxForMac
- GoogleUtilities
- GTMSessionFetcher
- HMSegmentedControl
- IQKeyboardManagerSwift
- KeychainSwift
- leveldb-library
- mailcore2-ios
- MetalPetal
- NKVPhonePicker
- ObjectMapper
- ReachabilitySwift
- SDWebImage
- Stripe
- SwiftPhoneNumberFormatter
- SwiftyJSON
EXTERNAL SOURCES:
GeoFire:
:git: https://github.com/firebase/geofire-objc.git
回答1:
Remove the following from the Podfile:
pod 'GoogleInterchangeUtilities'
pod 'GoogleNetworkingUtilities'
pod 'GoogleParsingUtilities'
pod 'GoogleSymbolUtilities'
pod 'GoogleUtilities'
Those are internal Google support pods that should not be directly added to Podfiles. Some of them are no longer active and because they're being asked to be loaded, they're forcing in ancient versions of other pods, like Firebase 3.x. Firebase is currently on version 6. It's also loading an ancient version of GoogleUtilities instead of the current 6.x version which is why there are missing GoogleUtilities symbol link errors.
回答2:
I ran $ sudo gem which cocoapods
and it said the version I was using was cocoapods-1.7.3
. Luckily my old computer still had the old version of cocoapods that was working fine which was cocoapods-1.5.3
.
I did 5 things
1- I uninstalled the current version of cocoapods and installed the previous version:
$ sudo gem uninstall cocoapod // uninstall current version
$ sudo gem install cocoapods -v 0.25.0 // install the older version that was working
$ sudo gem which cocoapods // check the updated version
2- I ran the following commends to clean everything out although cleaning out the derived data was probably the only one I needed
$ rm -rf ~/Library/Caches/CocoaPods
$ rm -rf Pods
$ rm -rf ~/Library/Developer/Xcode/DerivedData
$ pod deintegrate
$ pod clean
$ rm Podfile
$ pod cache clean --all
3- After I ran $ pod init
to create the podfile, I opened it and made sure the minimum version I'm using in my Xcode project matches what's in the podfile and I also added install! 'cocoapods', :deterministic_uuids => false
to the root of the pod file
# Uncomment the next line to define a global platform for your project
platform :ios, '12.0' // my Xcode project has a minimum target of iOS 12
install! 'cocoapods', :deterministic_uuids => false // this line should be written before the target line with the project name below
target 'MyProjectName' do
...
- After I did the above and I ran
pod install
I kept getting an error that said:
[!] CocoaPods could not find compatible versions for pod "Firebase/Crash": In Podfile: Firebase/Crash Specs satisfying the
Firebase/Crash
dependency were found, but they required a higher minimum deployment target.
Inside my pod file I commented out Firebase/Crash
$ #Firebase/Crash
5- Afterwards I ran pod install
I also ran pod update
and the error from my question went away:
$ pod install
$ pod update
The FirebaseCore Lexical or preprocessor 'GoogleUtilities/GULAppEnvironmentUtil.h' file not found
was finally resolved although I some other errors like 'NBPhoneNumberDesc.h' file not found
that was already there but these are the steps I used to get rid of this GoogleUtilities one.
回答3:
This is because of mismatched version of GoogleUtilities
, please update GoogleUtilities
using pod update GoogleUtilities
来源:https://stackoverflow.com/questions/56861317/xcode-firebasecore-lexical-or-preprocessor-issue-googleutilities-gulappenviron