firebase / firebase-ios-sdk

Firebase SDK for Apple App Development
https://firebase.google.com
Apache License 2.0
5.69k stars 1.49k forks source link

Firebase App Check Internal Error 17999 on iOS during App Review #12047

Closed lsamaria closed 1 year ago

lsamaria commented 1 year ago

Description

When using Xcode, and running my app, I'm able to access Firebase via App Check doing the following:

let providerFactory = AppCheckDebugProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

Once I get the Firebase App Check debug token. I manually add the token to Firebase Console> App Check

But when I uploaded my app to App Review, they can't login, they get an error code of

17999 - Internal Error

Why is it Firebase - App Check, Firebase isn't accessible in production/going live but works in a test environment/Xcode?

Reproducing the issue

I took the following steps:

I updated to the most recent pods.

In Firebase Console:

App Check > Apps > AppAttest > Registered and added my Team ID. Token time to live set to 1 hour (default) > Save

In AppDelegate:

import FirebaseAppCheck

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    override init() {
        super.init()

        Messaging.messaging().delegate = self

        let providerFactory = YourAppCheckProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)

        FirebaseApp.configure()
    }
}

class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

In Xcode:

Edit Schemes > Run > Arguments > FIRDebugEnabled is checked

Downloaded the most recent Google-Info.plist from Firebase Console > Project Overview > Project Settings > General > Apple apps > Replaced the previous one in my project with the most recent one

Targets > Signing & Capabilities > added App Attest

In the Entitlements File > App Attest Environment : production

In Google Cloud Console:

Credentials > Key Restrictions : None > API restrictions : Don't restrict keys

In developer.apple.com:

Certificates, IDs & Profiles > Certificates > Keys > created a Device Check key

Firebase SDK Version

Firebase (8.15.0), FirebaseAppCheck (8.15.0-beta),

Xcode Version

14.2

Installation Method

CocoaPods

Firebase Product(s)

Analytics, App Check, Authentication, Crashlytics, Database, Functions, Messaging, Storage

Targeted Platforms

iOS

Relevant Log Output

When the App Reviewer tries to create an account, they get: 

An internal error has occurred, print and inspect the error details for more information

================================================================

In AppDelegate I added the following:

static func requestDebugToken() {
        guard let firebaseApp = FirebaseApp.app() else {
            return
        }

        if let debugProvider = AppCheckDebugProvider(app: firebaseApp) {
            print("Debug token: \(debugProvider.currentDebugToken())")

            debugProvider.getToken { token, error in
                if let token = token {
                    print("Debug FAC token: \(token.token), expiration date: \(token.expirationDate)")
                }

                if let error = error {
                    print("Debug error: \(error)")
                }
            }
        }
    }

The Debug error is:

} }, body: {
  "error": {
    "code": 403,
    "message": "App attestation failed.",
    "status": "PERMISSION_DENIED"
  }
}
.
2023-11-03 14:38:45.234130-0400 appname[13937:810855] 8.15.0 - [Firebase/AppCheck][I-FAA004002] Failed to exchange debug token to app check token: Error Domain=com.firebase.appCheck Code=0 "The server responded with an error: 
 - URL: https://firebaseappcheck.googleapis.com/v1beta/projects/projectname-.../apps/1:...:ios:...:exchangeDebugToken 
 - HTTP status code: 403 
 - Response body: {
  "error": {
    "code": 403,
    "message": "App attestation failed.",
    "status": "PERMISSION_DENIED"
  }
}
" UserInfo={NSLocalizedFailureReason=The server responded with an error: 
 - URL: https://firebaseappcheck.googleapis.com/v1beta/projects/projectname-.../apps/1:...:ios:...:exchangeDebugToken
 - HTTP status code: 403 
 - Response body: {
  "error": {
    "code": 403,
    "message": "App attestation failed.",
    "status": "PERMISSION_DENIED"
  }
}
}

While also in AppDelegate I added-

static func requestAppAttestToken() {
        guard let firebaseApp = FirebaseApp.app() else {
            return
        }

        guard let appAttestProvider = AppAttestProvider(app: firebaseApp) else {
            print("Failed to instantiate AppAttestProvider")
            return
        }

        appAttestProvider.getToken { token, error in
            if let token = token {
                print("App Attest FAC token: \(token.token), expiration date: \(token.expirationDate)")
            }

            if let error = error {
                print("App Attest error: \(error)")
            }
        }
}

I successfully get:

App Attest FAC token: "...", expiration date: 2023-11-03 19:39:25 +0000

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
```json Replace this line with the contents of your Package.resolved. ```

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
```yml PODS: - AppAuth (1.6.2): - AppAuth/Core (= 1.6.2) - AppAuth/ExternalUserAgent (= 1.6.2) - AppAuth/Core (1.6.2) - AppAuth/ExternalUserAgent (1.6.2): - AppAuth/Core - DLRadioButton (1.4.12) - Firebase (8.15.0): - Firebase/Core (= 8.15.0) - Firebase/AppCheck (8.15.0): - Firebase/CoreOnly - FirebaseAppCheck (~> 8.15.0-beta) - Firebase/Auth (8.15.0): - Firebase/CoreOnly - FirebaseAuth (~> 8.15.0) - Firebase/Core (8.15.0): - Firebase/CoreOnly - FirebaseAnalytics (~> 8.15.0) - Firebase/CoreOnly (8.15.0): - FirebaseCore (= 8.15.0) - Firebase/Database (8.15.0): - Firebase/CoreOnly - FirebaseDatabase (~> 8.15.0) - Firebase/DynamicLinks (8.15.0): - Firebase/CoreOnly - FirebaseDynamicLinks (~> 8.15.0) - Firebase/Functions (8.15.0): - Firebase/CoreOnly - FirebaseFunctions (~> 8.15.0) - Firebase/Installations (8.15.0): - Firebase/CoreOnly - FirebaseInstallations (~> 8.15.0) - Firebase/Messaging (8.15.0): - Firebase/CoreOnly - FirebaseMessaging (~> 8.15.0) - Firebase/Storage (8.15.0): - Firebase/CoreOnly - FirebaseStorage (~> 8.15.0) - FirebaseAnalytics (8.15.0): - FirebaseAnalytics/AdIdSupport (= 8.15.0) - FirebaseCore (~> 8.0) - FirebaseInstallations (~> 8.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - GoogleUtilities/MethodSwizzler (~> 7.7) - GoogleUtilities/Network (~> 7.7) - "GoogleUtilities/NSData+zlib (~> 7.7)" - nanopb (~> 2.30908.0) - FirebaseAnalytics/AdIdSupport (8.15.0): - FirebaseCore (~> 8.0) - FirebaseInstallations (~> 8.0) - GoogleAppMeasurement (= 8.15.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - GoogleUtilities/MethodSwizzler (~> 7.7) - GoogleUtilities/Network (~> 7.7) - "GoogleUtilities/NSData+zlib (~> 7.7)" - nanopb (~> 2.30908.0) - FirebaseAppCheck (8.15.0-beta): - FirebaseCore (~> 8.0) - GoogleUtilities/Environment (~> 7.7) - PromisesObjC (< 3.0, >= 1.2) - FirebaseAuth (8.15.0): - FirebaseCore (~> 8.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - GoogleUtilities/Environment (~> 7.7) - GTMSessionFetcher/Core (~> 1.5) - FirebaseCore (8.15.0): - FirebaseCoreDiagnostics (~> 8.0) - GoogleUtilities/Environment (~> 7.7) - GoogleUtilities/Logger (~> 7.7) - FirebaseCoreDiagnostics (8.15.0): - GoogleDataTransport (~> 9.1) - GoogleUtilities/Environment (~> 7.7) - GoogleUtilities/Logger (~> 7.7) - nanopb (~> 2.30908.0) - FirebaseCrashlytics (8.15.0): - FirebaseCore (~> 8.0) - FirebaseInstallations (~> 8.0) - GoogleDataTransport (~> 9.1) - GoogleUtilities/Environment (~> 7.7) - nanopb (~> 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - FirebaseDatabase (8.15.0): - FirebaseCore (~> 8.0) - leveldb-library (~> 1.22) - FirebaseDynamicLinks (8.15.0): - FirebaseCore (~> 8.0) - FirebaseFunctions (8.15.0): - FirebaseCore (~> 8.0) - GTMSessionFetcher/Core (~> 1.5) - FirebaseInstallations (8.15.0): - FirebaseCore (~> 8.0) - GoogleUtilities/Environment (~> 7.7) - GoogleUtilities/UserDefaults (~> 7.7) - PromisesObjC (< 3.0, >= 1.2) - FirebaseMessaging (8.15.0): - FirebaseCore (~> 8.0) - FirebaseInstallations (~> 8.0) - GoogleDataTransport (~> 9.1) - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - GoogleUtilities/Environment (~> 7.7) - GoogleUtilities/Reachability (~> 7.7) - GoogleUtilities/UserDefaults (~> 7.7) - nanopb (~> 2.30908.0) - FirebaseStorage (8.15.0): - FirebaseCore (~> 8.0) - GTMSessionFetcher/Core (~> 1.5) - GeoFire (4.3.0): - GeoFire/Database (= 4.3.0) - GeoFire/Database (4.3.0): - Firebase/Database (< 9.0.0, > 7.0.0) - GeoFire/Utils - GeoFire/Utils (4.3.0) - Google-Mobile-Ads-SDK (10.12.0): - GoogleAppMeasurement (< 11.0, >= 7.0) - GoogleUserMessagingPlatform (>= 1.1) - GoogleAnalytics (3.21.0) - GoogleAppMeasurement (8.15.0): - GoogleAppMeasurement/AdIdSupport (= 8.15.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - GoogleUtilities/MethodSwizzler (~> 7.7) - GoogleUtilities/Network (~> 7.7) - "GoogleUtilities/NSData+zlib (~> 7.7)" - nanopb (~> 2.30908.0) - GoogleAppMeasurement/AdIdSupport (8.15.0): - GoogleAppMeasurement/WithoutAdIdSupport (= 8.15.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - GoogleUtilities/MethodSwizzler (~> 7.7) - GoogleUtilities/Network (~> 7.7) - "GoogleUtilities/NSData+zlib (~> 7.7)" - nanopb (~> 2.30908.0) - GoogleAppMeasurement/WithoutAdIdSupport (8.15.0): - GoogleUtilities/AppDelegateSwizzler (~> 7.7) - GoogleUtilities/MethodSwizzler (~> 7.7) - GoogleUtilities/Network (~> 7.7) - "GoogleUtilities/NSData+zlib (~> 7.7)" - nanopb (~> 2.30908.0) - GoogleDataTransport (9.2.5): - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - GoogleMaps (7.4.0): - GoogleMaps/Maps (= 7.4.0) - GoogleMaps/Base (7.4.0) - GoogleMaps/Maps (7.4.0): - GoogleMaps/Base - GooglePlaces (7.4.0) - GoogleSignIn (7.0.0): - AppAuth (~> 1.5) - GTMAppAuth (< 3.0, >= 1.3) - GTMSessionFetcher/Core (< 4.0, >= 1.1) - GoogleUserMessagingPlatform (2.1.0) - GoogleUtilities/AppDelegateSwizzler (7.11.5): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Environment (7.11.5): - PromisesObjC (< 3.0, >= 1.2) - GoogleUtilities/Logger (7.11.5): - GoogleUtilities/Environment - GoogleUtilities/MethodSwizzler (7.11.5): - GoogleUtilities/Logger - GoogleUtilities/Network (7.11.5): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Reachability - "GoogleUtilities/NSData+zlib (7.11.5)" - GoogleUtilities/Reachability (7.11.5): - GoogleUtilities/Logger - GoogleUtilities/UserDefaults (7.11.5): - GoogleUtilities/Logger - GTMAppAuth (2.0.0): - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 4.0, >= 1.5) - GTMSessionFetcher/Core (1.7.2) - IQKeyboardManagerSwift (6.5.15) - KeychainSwift (20.0.0) - leveldb-library (1.22.2) - nanopb (2.30908.0): - nanopb/decode (= 2.30908.0) - nanopb/encode (= 2.30908.0) - nanopb/decode (2.30908.0) - nanopb/encode (2.30908.0) - PersonalizedAdConsent (1.0.5) - PromisesObjC (2.3.1) - ReachabilitySwift (5.0.0) - SCLAlertView (0.8) - SDWebImage (5.18.3): - SDWebImage/Core (= 5.18.3) - SDWebImage/Core (5.18.3) - SVProgressHUD (2.2.5) - SwiftyJSON (5.0.1) - SwiftyStoreKit (0.16.1) DEPENDENCIES: - DLRadioButton (~> 1.4) - Firebase - Firebase/AppCheck - Firebase/Auth - Firebase/Core - Firebase/Database - Firebase/DynamicLinks - Firebase/Functions - Firebase/Installations - Firebase/Messaging - Firebase/Storage - FirebaseAnalytics - FirebaseCrashlytics - GeoFire (~> 4.0) - Google-Mobile-Ads-SDK - GoogleAnalytics - GoogleMaps - GooglePlaces - GoogleSignIn - IQKeyboardManagerSwift - KeychainSwift - PersonalizedAdConsent - ReachabilitySwift - SCLAlertView - SDWebImage - SVProgressHUD - SwiftyJSON - SwiftyStoreKit SPEC REPOS: trunk: - AppAuth - DLRadioButton - Firebase - FirebaseAnalytics - FirebaseAppCheck - FirebaseAuth - FirebaseCore - FirebaseCoreDiagnostics - FirebaseCrashlytics - FirebaseDatabase - FirebaseDynamicLinks - FirebaseFunctions - FirebaseInstallations - FirebaseMessaging - FirebaseStorage - GeoFire - Google-Mobile-Ads-SDK - GoogleAnalytics - GoogleAppMeasurement - GoogleDataTransport - GoogleMaps - GooglePlaces - GoogleSignIn - GoogleUserMessagingPlatform - GoogleUtilities - GTMAppAuth - GTMSessionFetcher - IQKeyboardManagerSwift - KeychainSwift - leveldb-library - nanopb - PersonalizedAdConsent - PromisesObjC - ReachabilitySwift - SCLAlertView - SDWebImage - SVProgressHUD - SwiftyJSON - SwiftyStoreKit SPEC CHECKSUMS: AppAuth: ... DLRadioButton: ... Firebase: ... FirebaseAnalytics: ... FirebaseAppCheck: ... FirebaseAuth: ... FirebaseCore: ... FirebaseCoreDiagnostics: ... FirebaseCrashlytics: ... FirebaseDatabase: ... FirebaseDynamicLinks: ... FirebaseFunctions: ... FirebaseInstallations: ... FirebaseMessaging: ... FirebaseStorage: ... GeoFire: ... Google-Mobile-Ads-SDK: ... GoogleAnalytics: ... GoogleAppMeasurement: ... GoogleDataTransport: ... GoogleMaps: ... GooglePlaces: ... GoogleSignIn: ... GoogleUserMessagingPlatform: ... GoogleUtilities: ... GTMAppAuth: ... GTMSessionFetcher: ... IQKeyboardManagerSwift: ... KeychainSwift: ... leveldb-library: ... nanopb: ... PersonalizedAdConsent: ... PromisesObjC: ... ReachabilitySwift: ... SCLAlertView: ... SDWebImage: ... SVProgressHUD: ... SwiftyJSON: ... SwiftyStoreKit: ... PODFILE CHECKSUM: ... COCOAPODS: 1.11.3 ```
google-oss-bot commented 1 year ago

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

andrewheard commented 1 year ago

Hi @lsamaria, it looks like error 1799 is from the Auth SDK, not App Check: https://github.com/firebase/firebase-ios-sdk/blob/aec227be2b101577e0b531a08ec057ef01e13703/FirebaseAuth/Sources/Public/FirebaseAuth/FIRAuthErrors.h#L465-L467

In your AppDelegate, I'd recommend moving your code from init() to application(_ application:, didFinishLaunchingWithOptions launchOptions:).

If possible, please upgrade to Firebase 10.17 since we had some App Check fixes as well.

lsamaria commented 1 year ago

@andrewheard thanks for the reply. A few things

-I moved the code from init() to didFinishLaunchingWithOptions, same issue Internal Error occured, I can't login. I also tried to create new account but the same problem.

-Outside of moving to didFinishLaunchingWithOptions, why if I'm working with the debugging version AppCheck.setAppCheckProviderFactory(AppCheckDebugProviderFactory()) it works in the init() method but for release mode AppCheck.setAppCheckProviderFactory(YourAppCheckProviderFactory()) it doesn't work?

-When I run pod update it only updates to 8.15.0. I completely removed and cleaned cocoapods from my project, created a new podfile, then reinstalled everything fresh, and Firebase is still on 18.15.0. I;m on the latest version of cocoapods 1.14.2

On a side note I was going to add Firebase via SPM but I also use GeoFire which isn't available for SPM. I read Firebase via SPM and GeoFire via cocoapods don't work well together.

lsamaria commented 1 year ago

@andrewheard I updated to to 10.17.0, that fixed the problem as far as I can see. Thanks! I'm going to upload the app to App Store Connect again to see if they have any issue on their side before I close this. I'm uploading it to them now.

Btw, in the Podfile I updated the platform from '14' to '15' as in platform :ios, '15.0'. The docs didn't say to use 10.17 the platform # needs to be min 15. You should have someone add that somewhere.

paulb777 commented 1 year ago

@lsamaria Great to hear that 10.17.0 fixed the issue!

Firebase 10.17.0 supports iOS 11 and up. There must be another of the app's dependencies requiring 15.

I'll close the issue, but feel free to continue the conversation here.

lsamaria commented 1 year ago

@paulb777 It's odd becuase all of the pods worked fine with platform :ios, '13.0' and platform :ios, '14.0'. The only pods that wouldn't update were the Firebase pods until I changed it to platform :ios, '15.0'.

If I leave the platform :ios, '15.0' in the Podfile, but in Xcode my minimum deployment target is iOS 14.1, will I have any issues as far as Firebase? Remember only those pods wouldn't update without 15 in the Podfile.

paulb777 commented 1 year ago

If you share your Podfile, we can take a look.

You could have issues if you deploy to a lower version than what's in the Podfile.

lsamaria commented 1 year ago

@paulb777 I'm glad you told me that. I was just about to upload it to App Store Connect with 14.1. Thanks for the heads up :)

PodFile:

# Uncomment the next line to define a global platform for your project
platform :ios, '15.0'

target 'myapp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for myapp

pod 'SCLAlertView'
pod 'DLRadioButton'
pod 'SwiftyJSON'
pod 'SDWebImage'
pod 'KeychainSwift'
pod 'IQKeyboardManagerSwift'
pod 'SVProgressHUD'
pod 'SwiftyStoreKit'
pod 'ReachabilitySwift'

pod 'Firebase'
pod 'FirebaseAnalytics'
pod 'Firebase/AppCheck'
pod 'Firebase/Auth'
pod 'Firebase/Core'
pod 'FirebaseCrashlytics'
pod 'Firebase/Database'
pod 'Firebase/DynamicLinks'
pod 'Firebase/Functions'
pod 'Firebase/Installations'
pod 'Firebase/Messaging'
pod 'Firebase/Storage'

pod 'GeoFire', '~> 5.0'

pod 'GoogleMaps'
pod 'GooglePlaces'
pod 'GoogleSignIn'
pod 'GoogleAnalytics'
pod 'Google-Mobile-Ads-SDK'
pod 'PersonalizedAdConsent'

post_install do |installer|

    installer.pods_project.targets.each do |target|
      if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
        target.build_configurations.each do |config|
            config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
        end
      end
    end
  end
end

Podfile.lock:

PODS:
  - AppAuth (1.6.2):
    - AppAuth/Core (= 1.6.2)
    - AppAuth/ExternalUserAgent (= 1.6.2)
  - AppAuth/Core (1.6.2)
  - AppAuth/ExternalUserAgent (1.6.2):
    - AppAuth/Core
  - DLRadioButton (1.4.12)
  - Firebase (10.17.0):
    - Firebase/Core (= 10.17.0)
  - Firebase/AppCheck (10.17.0):
    - Firebase/CoreOnly
    - FirebaseAppCheck (~> 10.17.0)
  - Firebase/Auth (10.17.0):
    - Firebase/CoreOnly
    - FirebaseAuth (~> 10.17.0)
  - Firebase/Core (10.17.0):
    - Firebase/CoreOnly
    - FirebaseAnalytics (~> 10.17.0)
  - Firebase/CoreOnly (10.17.0):
    - FirebaseCore (= 10.17.0)
  - Firebase/Database (10.17.0):
    - Firebase/CoreOnly
    - FirebaseDatabase (~> 10.17.0)
  - Firebase/DynamicLinks (10.17.0):
    - Firebase/CoreOnly
    - FirebaseDynamicLinks (~> 10.17.0)
  - Firebase/Functions (10.17.0):
    - Firebase/CoreOnly
    - FirebaseFunctions (~> 10.17.0)
  - Firebase/Installations (10.17.0):
    - Firebase/CoreOnly
    - FirebaseInstallations (~> 10.17.0)
  - Firebase/Messaging (10.17.0):
    - Firebase/CoreOnly
    - FirebaseMessaging (~> 10.17.0)
  - Firebase/Storage (10.17.0):
    - Firebase/CoreOnly
    - FirebaseStorage (~> 10.17.0)
  - FirebaseAnalytics (10.17.0):
    - FirebaseAnalytics/AdIdSupport (= 10.17.0)
    - FirebaseCore (~> 10.0)
    - FirebaseInstallations (~> 10.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.11)
    - GoogleUtilities/MethodSwizzler (~> 7.11)
    - GoogleUtilities/Network (~> 7.11)
    - "GoogleUtilities/NSData+zlib (~> 7.11)"
    - nanopb (< 2.30910.0, >= 2.30908.0)
- FirebaseAnalytics/AdIdSupport (10.17.0):
    - FirebaseCore (~> 10.0)
    - FirebaseInstallations (~> 10.0)
    - GoogleAppMeasurement (= 10.17.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.11)
    - GoogleUtilities/MethodSwizzler (~> 7.11)
    - GoogleUtilities/Network (~> 7.11)
    - "GoogleUtilities/NSData+zlib (~> 7.11)"
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - FirebaseAppCheck (10.17.0):
    - FirebaseAppCheckInterop (~> 10.17)
    - FirebaseCore (~> 10.0)
    - GoogleUtilities/Environment (~> 7.8)
    - PromisesObjC (~> 2.1)
  - FirebaseAppCheckInterop (10.17.0)
  - FirebaseAuth (10.17.0):
    - FirebaseAppCheckInterop (~> 10.17)
    - FirebaseCore (~> 10.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.8)
    - GoogleUtilities/Environment (~> 7.8)
    - GTMSessionFetcher/Core (< 4.0, >= 2.1)
    - RecaptchaInterop (~> 100.0)
  - FirebaseAuthInterop (10.17.0)
  - FirebaseCore (10.17.0):
    - FirebaseCoreInternal (~> 10.0)
    - GoogleUtilities/Environment (~> 7.8)
    - GoogleUtilities/Logger (~> 7.8)
  - FirebaseCoreExtension (10.17.0):
    - FirebaseCore (~> 10.0)
  - FirebaseCoreInternal (10.17.0):
    - "GoogleUtilities/NSData+zlib (~> 7.8)"
  - FirebaseCrashlytics (10.17.0):
    - FirebaseCore (~> 10.5)
    - FirebaseInstallations (~> 10.0)
    - FirebaseSessions (~> 10.5)
    - GoogleDataTransport (~> 9.2)
    - GoogleUtilities/Environment (~> 7.8)
    - nanopb (< 2.30910.0, >= 2.30908.0)
    - PromisesObjC (~> 2.1)
  - FirebaseDatabase (10.17.0):
    - FirebaseAppCheckInterop (~> 10.17)
    - FirebaseCore (~> 10.0)
    - FirebaseSharedSwift (~> 10.0)
    - leveldb-library (~> 1.22)
  - FirebaseDynamicLinks (10.17.0):
  - FirebaseCore (~> 10.0)
  - FirebaseFunctions (10.17.0):
    - FirebaseAppCheckInterop (~> 10.10)
    - FirebaseAuthInterop (~> 10.0)
    - FirebaseCore (~> 10.0)
    - FirebaseCoreExtension (~> 10.0)
    - FirebaseMessagingInterop (~> 10.0)
    - FirebaseSharedSwift (~> 10.0)
    - GTMSessionFetcher/Core (< 4.0, >= 2.1)
  - FirebaseInstallations (10.17.0):
    - FirebaseCore (~> 10.0)
    - GoogleUtilities/Environment (~> 7.8)
    - GoogleUtilities/UserDefaults (~> 7.8)
    - PromisesObjC (~> 2.1)
  - FirebaseMessaging (10.17.0):
    - FirebaseCore (~> 10.0)
    - FirebaseInstallations (~> 10.0)
    - GoogleDataTransport (~> 9.2)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.8)
    - GoogleUtilities/Environment (~> 7.8)
    - GoogleUtilities/Reachability (~> 7.8)
    - GoogleUtilities/UserDefaults (~> 7.8)
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - FirebaseMessagingInterop (10.17.0)
  - FirebaseSessions (10.17.0):
    - FirebaseCore (~> 10.5)
    - FirebaseCoreExtension (~> 10.0)
    - FirebaseInstallations (~> 10.0)
    - GoogleDataTransport (~> 9.2)
    - GoogleUtilities/Environment (~> 7.10)
    - nanopb (< 2.30910.0, >= 2.30908.0)
    - PromisesSwift (~> 2.1)
  - FirebaseSharedSwift (10.17.0)
  - FirebaseStorage (10.17.0):
    - FirebaseAppCheckInterop (~> 10.0)
    - FirebaseAuthInterop (~> 10.0)
    - FirebaseCore (~> 10.0)
    - FirebaseCoreExtension (~> 10.0)
    - GTMSessionFetcher/Core (< 4.0, >= 2.1)
  - GeoFire (5.0.0):
    - GeoFire/Database (= 5.0.0)
  - GeoFire/Database (5.0.0):
    - Firebase/Database (< 12.0.0, > 7.0.0)
    - GeoFire/Utils
  - GeoFire/Utils (5.0.0)
  - Google-Mobile-Ads-SDK (10.12.0):
    - GoogleAppMeasurement (< 11.0, >= 7.0)
    - GoogleUserMessagingPlatform (>= 1.1)
  - GoogleAnalytics (3.21.0)
  - GoogleAppMeasurement (10.17.0):
    - GoogleAppMeasurement/AdIdSupport (= 10.17.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.11)
    - GoogleUtilities/MethodSwizzler (~> 7.11)
    - GoogleUtilities/Network (~> 7.11)
    - "GoogleUtilities/NSData+zlib (~> 7.11)"
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - GoogleAppMeasurement/AdIdSupport (10.17.0):
    - GoogleAppMeasurement/WithoutAdIdSupport (= 10.17.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.11)
    - GoogleUtilities/MethodSwizzler (~> 7.11)
    - GoogleUtilities/Network (~> 7.11)
    - "GoogleUtilities/NSData+zlib (~> 7.11)"
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - GoogleAppMeasurement/WithoutAdIdSupport (10.17.0):
    - GoogleUtilities/AppDelegateSwizzler (~> 7.11)
    - GoogleUtilities/MethodSwizzler (~> 7.11)
    - GoogleUtilities/Network (~> 7.11)
    - "GoogleUtilities/NSData+zlib (~> 7.11)"
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - GoogleDataTransport (9.2.5):
    - GoogleUtilities/Environment (~> 7.7)
    - nanopb (< 2.30910.0, >= 2.30908.0)
    - PromisesObjC (< 3.0, >= 1.2)
  - GoogleMaps (8.2.0):
    - GoogleMaps/Maps (= 8.2.0)
  - GoogleMaps/Base (8.2.0)
  - GoogleMaps/Maps (8.2.0):
    - GoogleMaps/Base
  - GooglePlaces (8.2.1)
  - GoogleSignIn (7.0.0):
    - AppAuth (~> 1.5)
    - GTMAppAuth (< 3.0, >= 1.3)
    - GTMSessionFetcher/Core (< 4.0, >= 1.1)
  - GoogleUserMessagingPlatform (2.1.0)
  - GoogleUtilities/AppDelegateSwizzler (7.11.6):
    - GoogleUtilities/Environment
    - GoogleUtilities/Logger
    - GoogleUtilities/Network
  - GoogleUtilities/Environment (7.11.6):
  - PromisesObjC (< 3.0, >= 1.2)
  - GoogleUtilities/Logger (7.11.6):
    - GoogleUtilities/Environment
  - GoogleUtilities/MethodSwizzler (7.11.6):
    - GoogleUtilities/Logger
  - GoogleUtilities/Network (7.11.6):
    - GoogleUtilities/Logger
    - "GoogleUtilities/NSData+zlib"
    - GoogleUtilities/Reachability
  - "GoogleUtilities/NSData+zlib (7.11.6)"
  - GoogleUtilities/Reachability (7.11.6):
    - GoogleUtilities/Logger
  - GoogleUtilities/UserDefaults (7.11.6):
    - GoogleUtilities/Logger
  - GTMAppAuth (2.0.0):
    - AppAuth/Core (~> 1.6)
    - GTMSessionFetcher/Core (< 4.0, >= 1.5)
  - GTMSessionFetcher/Core (3.1.1)
  - IQKeyboardManagerSwift (6.5.16)
  - KeychainSwift (20.0.0)
  - leveldb-library (1.22.2)
  - nanopb (2.30909.1):
    - nanopb/decode (= 2.30909.1)
    - nanopb/encode (= 2.30909.1)
  - nanopb/decode (2.30909.1)
  - nanopb/encode (2.30909.1)
  - PersonalizedAdConsent (1.0.5)
  - PromisesObjC (2.3.1)
  - PromisesSwift (2.3.1):
    - PromisesObjC (= 2.3.1)
  - ReachabilitySwift (5.0.0)
  - RecaptchaInterop (100.0.0)
  - SCLAlertView (0.8)
  - SDWebImage (5.18.3):
    - SDWebImage/Core (= 5.18.3)
  - SDWebImage/Core (5.18.3)
  - SVProgressHUD (2.3.1):
    - SVProgressHUD/Core (= 2.3.1)
  - SVProgressHUD/Core (2.3.1)
  - SwiftyJSON (5.0.1)
  - SwiftyStoreKit (0.16.1)

  DEPENDENCIES:
  - DLRadioButton (~> 1.4)
  - Firebase (= 10.17.0)
  - Firebase/AppCheck
  - Firebase/Auth
  - Firebase/Core
  - Firebase/Database
  - Firebase/DynamicLinks
  - Firebase/Functions
  - Firebase/Installations
  - Firebase/Messaging
  - Firebase/Storage
  - FirebaseAnalytics
  - FirebaseCrashlytics
  - GeoFire (~> 5.0)
  - Google-Mobile-Ads-SDK
  - GoogleAnalytics
  - GoogleMaps
  - GooglePlaces
  - GoogleSignIn
  - IQKeyboardManagerSwift
  - KeychainSwift
  - PersonalizedAdConsent
  - ReachabilitySwift
  - SCLAlertView
  - SDWebImage
  - SVProgressHUD
  - SwiftyJSON
  - SwiftyStoreKit

  SPEC REPOS:
  trunk:
    - AppAuth
    - DLRadioButton
    - Firebase
    - FirebaseAnalytics
    - FirebaseAppCheck
    - FirebaseAppCheckInterop
    - FirebaseAuth
    - FirebaseAuthInterop
    - FirebaseCore
    - FirebaseCoreExtension
    - FirebaseCoreInternal
    - FirebaseCrashlytics
    - FirebaseDatabase
    - FirebaseDynamicLinks
    - FirebaseFunctions
    - FirebaseInstallations
    - FirebaseMessaging
    - FirebaseMessagingInterop
    - FirebaseSessions
    - FirebaseSharedSwift
    - FirebaseStorage
    - GeoFire
    - Google-Mobile-Ads-SDK
    - GoogleAnalytics
    - GoogleAppMeasurement
    - GoogleDataTransport
    - GoogleMaps
    - GooglePlaces
    - GoogleSignIn
    - GoogleUserMessagingPlatform
    - GoogleUtilities
    - GTMAppAuth
    - GTMSessionFetcher
    - IQKeyboardManagerSwift
    - KeychainSwift
    - leveldb-library
    - nanopb
    - PersonalizedAdConsent
    - PromisesObjC
    - PromisesSwift
    - ReachabilitySwift
    - RecaptchaInterop
    - SCLAlertView
- SDWebImage
    - SVProgressHUD
    - SwiftyJSON
    - SwiftyStoreKit

SPEC CHECKSUMS:
# ...

PODFILE CHECKSUM: #...

COCOAPODS: 1.14.2
paulb777 commented 1 year ago

And what do you see if you change to platform :ios, '14.0'

lsamaria commented 1 year ago

I ran the project with iOS 14.0 even though the Podfile platform is 15.0 and Firebase let me login in. I didn’t do anything other than though because I was cooking at the same time.

On the surface it seems ok.

lsamaria commented 1 year ago

Oh sorry, I misunderstood the question.

I changed the platform back to 14.0 and ran pod update. No issues on the Podfile’s part, everything remained the same.

in Xcode the minimum deployment is 14.0.

I logged in, did a database read, logged out, and everything was all good.

paulb777 commented 1 year ago

Makes sense. More explanation at https://stackoverflow.com/a/77420014/556617