App Store Rejection: Auth0 Sign-in Buttons Not Working on iOS 18.3.1

App Store Rejection: Auth0 Sign-in Buttons Not Working on iOS 18.3.1

The Issue

Our iOS app was recently rejected from the App Store with the following feedback:

Issue Description: The app exhibited one or more bugs that would negatively impact App Store users.

Bug description: No action took place when we tapped on ‘Continue with Apple’/‘Continue with Google’.

Review device details:

  • Device type: iPhone 15 Pro and iPad Air (5th generation)
  • OS version: iOS 18.3.1

This is concerning as our authentication flow works correctly on our test devices, but seems to fail specifically on iOS 18.3.1 during App Store review.

Implementation Details

We’re using the Auth0.swift SDK to implement both Apple and Google sign-in. Here’s a simplified version of our implementation:

// Google Auth0 Login
func googleAuth0Login() {
    // Configuration verification
    guard verifyAuth0Configuration() else {
        // Handle configuration error
        return
    }
    
    guard let config = loadAuth0Config() else {
        // Handle config loading error
        return
    }
    
    let domain = config["Domain"] ?? ""
    let clientId = config["ClientId"] ?? ""
    
    Auth0
        .webAuth(clientId: clientId, domain: domain)
        .connection("Google")
        .scope("openid profile email offline_access https://www.googleapis.com/auth/calendar.readonly https://www.googleapis.com/auth/calendar.events.readonly")
        .audience("https://api.thirdear.live")
        .parameters(getLoginParameters(loginMode: "google"))
        .useHTTPS()
        .start { [self] result in
            // Handle authentication result
        }
}

// Apple Auth0 Login
func appleAuth0Login() {
    // Configuration verification
    guard verifyAuth0Configuration() else {
        // Handle configuration error
        return
    }
    
    guard let config = loadAuth0Config() else {
        // Handle config loading error
        return
    }
    
    let domain = config["Domain"] ?? ""
    let clientId = config["ClientId"] ?? ""
    
    Auth0
        .webAuth(clientId: clientId, domain: domain)
        .connection("apple")
        .scope("openid profile email offline_access")
        .audience("https://api.thirdear.live")
        .parameters(getLoginParameters(loginMode: "apple"))
        .useHTTPS()
        .start { [self] result in
            // Handle authentication result
        }
}

What I’ve Tried So Far

  1. Verified that the Auth0 configuration (domain and client ID) is correctly loaded from our plist file
  2. Confirmed the app has proper entitlements for Sign in with Apple
  3. Validated that our Auth0 tenant has the correct callback URLs configured
  4. Added extensive logging using both our own logging system and Amplitude analytics to track the authentication flow
  5. Tested on multiple devices with iOS 17 and iOS 18 where it works correctly
  6. Confirmed that we’re properly handling success and failure cases in our authentication flow

Unusual Observations

  • The issue only appears on the App Store review devices (iOS 18.3.1)
  • There’s no error shown to the user or logged - the buttons simply don’t respond to taps
  • Our verification steps (verifyAuth0Configuration) pass successfully based on logs
  • All other UI elements and app functionality work correctly

Questions for the Community

  1. Has anyone encountered similar issues with Auth0 authentication on iOS 18.3.1, specifically with iPhone 15 Pro or iPad Air 5th generation?
  2. Could there be any specific iOS 18.3.1 changes that might affect Auth0’s WebAuth flow?
  3. Are there any recommended debugging approaches for issues that only manifest during App Store review?
  4. Should we consider implementing a fallback authentication method when the primary method fails?
  5. Are there known issues with Auth0’s handling of scopes or parameters on newer iOS versions?

Any insights, suggestions, or similar experiences would be greatly appreciated. We’re trying to resolve this issue as quickly as possible to get our app approved for the App Store.

Thank you!

1 Like