1

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

enter image description here

enter image description here

I did a cmmd+4 for a search and other files use it but they aren't complaining

enter image description here

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
Lance Samaria
  • 17,576
  • 18
  • 108
  • 256
  • Try `rm -rf ~/Library/Developer/Xcode/DerivedData/` and if you're still stuck, share the `Podfile.lock` – Paul Beusterien Jul 03 '19 at 00:52
  • @PaulBeusterien I cleaned the derived data and it made no difference, problem still persists. I updated the question with the Podfile.lock file. Thanks for the help – Lance Samaria Jul 03 '19 at 01:22

4 Answers4

3

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
...
  1. 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.

Lance Samaria
  • 17,576
  • 18
  • 108
  • 256
3

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.

Paul Beusterien
  • 27,542
  • 6
  • 83
  • 139
  • Hi, my answer below fixed the problem but there are other similar problems that my answer didn’t fix. I think your correct. The reason I have those in there is because a couple of yrs ago I did something like change the name to one of my projects and when I did a pod init I had to add those manually. I’m at Trader Joe’s now when I get home in an hour or so I’ll try your answer. One question, why didn’t they cause any problems on any of my other Firebase projects? I’ve used them exactly the same up until yesterday and no issues. Maybe Firebase version 5.xxx – Lance Samaria Jul 03 '19 at 13:40
  • Firebase 5.x used new functionality from GoogleUtilities that requires it to be properly updated to latest. – Paul Beusterien Jul 03 '19 at 13:51
  • I just wiped all the pods and removed the derived data (all the steps from my answer), and commented out the 5 GoogleUtility files like you suggested but I am still having the same problem. The answer from my question seemed to fix the problem in the question but the other problems still persist. I posted it here https://github.com/chronotruck/FlagPhoneNumber/issues/103 , I can post it as another question on SO. Do you have any idea why it's still not working? – Lance Samaria Jul 03 '19 at 16:30
  • These are the only GoogleUtility files in the .lock file. The Firebase pods must have generated them: - GoogleAppMeasurement (= 6.0.2) - GoogleUtilities/AppDelegateSwizzler (~> 6.0) - GoogleUtilities/MethodSwizzler (~> 6.0) - GoogleUtilities/Network (~> 6.0) - "GoogleUtilities/NSData+zlib (~> 6.0)" – Lance Samaria Jul 03 '19 at 16:33
  • The 5 6.x GoogleUtilities are expected. One key problem to understand is why is `Firebase/Analytics (3.6.0)` showing up in the `Podfile.lock` instead of a more recent version. – Paul Beusterien Jul 03 '19 at 18:22
  • I just looked into the updated lock file. The one from the question was before I took your advice and commented out the 5 GU. Now that they're gone and it's - Firebase/Analytics (6.3.0): – Lance Samaria Jul 03 '19 at 18:27
  • The updated GU subspecs should satisfy the preprocessor issue after a clean build. If not, perhaps it's time for a new question or to update the content in this one. – Paul Beusterien Jul 03 '19 at 18:34
  • I was literally typing the data for a new question just now. It's strange the updates aren't working. Thanks for the help though :). I'll send you the question when I'm finished composing it. If you have time to to look it over I'd appreciate it. Even though your answer didn't resolve the problem I'm still going to upvote it because it you was 100% correct about what I was doing wrong. Thank You!!! – Lance Samaria Jul 03 '19 at 18:37
  • Here's the new question, thanks: https://stackoverflow.com/questions/56876712/nbphonenumberdesc-h-file-not-found-after-updating-to-xcode-10-2-swift-5 – Lance Samaria Jul 03 '19 at 19:20
2

This is because of mismatched version of GoogleUtilities, please run pod update GoogleUtilities

Shafi Muhammed
  • 433
  • 6
  • 12
0

Install this only pod 'Firebase/Core'