Skip to content

NSInternalInconsistencyException crash - Actions added to UIAlertController of style UIAlertActionStyleCancel must have a title when running in UIUserInterfaceIdiomPhone/Pad #483

Open

Description

@trant

Describe the bug

  • One of your localized strings for the cancel action is being returned as an empty string and crashing our app.
  • I suspect the issue is either on this line of code or this one

To Reproduce

When logging in your API needs to return the following error code.
One of your locales might be returning that empty string. We support the following in our app: Image

Expected behavior
App not to crash when that error is returned by your API

Screenshots

Environment

  • Device: iPhone 11, iPhone 12 Pro Max, iPhone 15 Pro Max, iPad Pro 13-inch (M4
  • OS: iOS 17.5.1, 17.6.1, iOS 18.0.1, iPad OS 17.5.1
  • Browser: [ e.g. Safari, Chrome, etc ]
  • GoogleSignIn SDK version: 7.1.0

Additional context

stack_trace_phone.txt
stack_trace_pad.txt

Activity

  1. added
    bugSomething isn't working
    triageIssues that need to be triaged
    on Oct 9, 2024
  2. changed the title [-]NSInternalInconsistencyException - Actions added to UIAlertController of style UIAlertActionStyleCancel must have a title when running in UIUserInterfaceIdiomPhone/Pad[/-] [+]NSInternalInconsistencyException crash - Actions added to UIAlertController of style UIAlertActionStyleCancel must have a title when running in UIUserInterfaceIdiomPhone/Pad[/+] on Oct 9, 2024
  3. brnnmrls commented on Oct 17, 2024

    @brnnmrls
    Member

    Hello! Thanks for submitting this issue. I'm curious if you're still running into this and if so, would you mind adding some repro steps or a recording of this happening? I'm unable to reproduce this on my end. I took a look at the two code snippets you sent and additionally when when the kScreenlockRequiredError is logged but didn't see anything unusual.

  4. trant commented on Oct 18, 2024

    @trant
    Author

    Hey there 👋 Sadly we couldn't reproduce this either as I mentioned I can't make Charles Proxy working together with the Google sign/login flows to manipulate that error.

    We now have less occurrences of the crash but it is sill happening. Some stats:

    Image

    Our peak of crashes happened on the 9th of October.
    In the last 30 days we have had 65 crash events affecting 22 users

    OS/Device Distribution

    Image
    Image
    `

    Since this method can return a null string, would it be possible that this line of code and this handle the null value and replace it with an empty string ?

  5. nrurnru commented on Oct 19, 2024

    @nrurnru
    Contributor
  6. picklebento commented on Feb 27, 2025

    @picklebento

    This issue is still happening for my corporate account today. Would like to use this as a bump to increase visibility.

  7. brnnmrls commented on Mar 4, 2025

    @brnnmrls
    Member

    Hello! Going to spend some time on this this week. After some digging, I'm still not able to reproduce. Would anyone be able to share what some apps they experienced this crash on? Has anyone been able to reproduce locally?

    I find it odd that something like -[GIDEMMErrorHandler cancelString] would return an empty string.

  8. jj2372-collab commented on Mar 25, 2026

    @jj2372-collab
    
    When checking the GoogleSignIn.xcframework file included in the compressed archive downloaded via the Firebase SDK using the file command as follows:
    
    "file GoogleSignIn.xcframework/ios-arm64/GoogleSignIn.framework/GoogleSignIn"
    The result is:
    "current ar archive"
    
    However, when checking the FBSDKLoginKit.xcframework file downloaded from another third-party vendor such as Facebook using the same method:
    
    "file FBSDKLoginKit.xcframework/ios-arm64/FBSDKLoginKit.framework/FBSDKLoginKit"
    The result is different:
    "Mach-O 64-bit dynamically linked shared library arm64"
    
    Could you please check whether the build script options used to generate GoogleSignIn.xcframework include an option that causes static linking?
    
    
  9. jj2372-collab commented on Mar 26, 2026

    @jj2372-collab

    Since the Firebase SDK provides GoogleSignIn.xcframework in the form of a static library, this issue can be resolved by adding the GoogleSignIn.bundle file to "Copy Bundle Resources" menu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions