Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/

28,320

Solution 1

Ok, I think I solved the problem, but the solution does not seem to be the way it should work (at least I do not think).

  • Go to Firebase Console > Project Settings > Account Linking > Fabric > Select the app and Unlink it
  • Confim in Fabric > App > Firebase - that it is unlinked
  • Go to Firebase > Project > Crashlytics (select the app you want) and you should now get a dialog to link your app again
  • Choose to link as a New Crashlytics (not existing one) and follow the directions
  • After that all should work fine

So basically, from Fabric>Firebase screen - there is no link visible and from Firebase>Account Linking>Fabric screen - there is also no linking visible. So no linking, but your crashes will be visible in Firebase.

Solution 2

I had the same issue and it took me a lot of time to figure out. I solved my problem by going to FireBase Console > [my project] > Crashlytics. In the dropdown you need to select your app. After that a wizard with three steps will show up. first step of setup

Click whatever option suits you, I chose the first because it's a new app. After that the second step shows up.

second step of setup

Now here comes the important part. Make sure you click the link to go to the documentation! A new browser tab will open up. If you already finished the project setup like me, you can close it. After that you will automatically go to the 3rd option. Most of the time I never clicked the link because I had already completed the installation. And once I did I never noticed that the 3rd option was available because I'm at the other tab. As a result I never got to see the 3rd option.

third step of setup At this point you should open your app and it will automatically connect to Firebase without any problem.

Edit: After I tried to add some other build variants I noticed that I was still getting some errors while retrieving the settings. It took me a lot of time to figure out how to solve it. The best thing I could come up with is:

  1. switch to build variant
  2. perform an assemble[YOUR_BUILD_VARIANT] on the gradle tab.
  3. build > rebuild project
  4. delete old app from device if present.
  5. install app and open it. Sometimes this also didn't work and I tried the same steps again one or two times and suddenly it started working...

It also helped me to enable additional debug logging for fabric and crashlytics.

adb shell setprop log.tag.Fabric DEBUG
adb shell setprop log.tag.CrashlyticsCore DEBUG

Solution 3

This takes me a lot of time than I figured out how to migrate correctly. Actually you have two ways how to do it:

  1. Perform clean migration without keeping crash history from Fabric Crashlytics

    This way is described in Firebase Crashlytics developer guide. You have to here remove com.crashlytics.ApiKey meta-data from app manifest file.

    With this way you must not link Fabric with Firebase otherwise crashes will not shown in Firebase nor Fabric console.

  2. Link Fabric with Firebase and keep the crash history

    This way is probably nowhere documented. Crucial is here to keep com.crashlytics.ApiKey meta-data in your manifest. Then you need to link Fabric Crashlytics with Firebase. You can also enable forwarding Events (formerly Answers) to Firebase Analytics. Both actions are presented in Fabric console, look for Firebase in a side menu.

    All new crash reports show up in both Fabric console and Firebase console. Also this linking arrange a copying all Fabric crash report history to Firebase.

    I think firebase-core artifact is not necessary here, but I added it. I'm also using Fabric Events, so with firebase-core additional app usage events was appeared in Firebase Analytics.

Solution 4

If there's network connectivity (like in Airplane mode), you will get this error even if everything is setup correctly.

You will also get:

E/Fabric﹕ Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/com.xyz/settings
W/Fabric﹕ Received null settings, skipping initialization!

To prevent Crashlytics from further crashing when logging, I do this:

boolean fabricInitialized = Fabric.isInitialized();
if (fabricInitialized) {
   Crashlytics.log(someString);
}

Solution 5

Go to the settings of the project and add SHA-1 key for your android app. After that redownload google-service.json to your sources. This causes disappearing of this error

E/Fabric: Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/package name/settings

And after quite a huge delay you'll see crashes in Firebase Console.

By the way this doesn't help me with apps that were registered under one Google account, and after that moved to another account. Wiating for a response of Firebase team about this issue.

Share:
28,320
Kenneth Browning
Author by

Kenneth Browning

Updated on July 09, 2022

Comments

  • Kenneth Browning
    Kenneth Browning almost 2 years

    I am trying out the new Firebase/Crashlytics setup and seem to run into a weird issue.

    • I have one Android code base with multiple product flavors and each flavor is a separate individual app.
    • all of these apps are registered in Fabric (from the past)
    • all of these apps are added in Firebase
    • All linking between the two seems ok (from Fabric side as well as from Firebase side, it says that it is all linked up)
    • I removed the Fabric API key from the manifest file and added the appropriate plugins/dependencies etc. to both gradle files

    I try to send a test crash report as per Firebase instructions.

    1. I receive it perfectly fine on one of the product flavors, so I assume all works well. However,
    2. the rest of the product flavors do not send the crash report and I get this error in log:

    E/Fabric: Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/package name/settings

    • xemacobra
      xemacobra over 9 years
      - I had the same issue and the reason was that I wasn't connected to the internet.
    • Todd Burner
      Todd Burner over 6 years
      Hi! Can you run ./gradlew assemble --refresh-dependencies when you change for different flavors? Let me know if that results in the crash uploading. :)
    • Kenneth Browning
      Kenneth Browning over 6 years
      Hi Todd, thank you for your suggestion. It did not seem to help. However, i found out that there is one difference between the flavors. All the ones that do not send a crash to Firebase have an entry in the Firebase console under settings/accountlinking/fabric, however, the one that works fine, does not have an entry there as being linked, even though it shows as linked in Fabric.This makes me believe it is something on the Firebase/Fabric team's side.
    • Shubham AgaRwal
      Shubham AgaRwal almost 4 years
      There is no accountlinking for me however there is one integration tab but that doesn't contain fabric. ps I have a owner permission
  • Alex_297
    Alex_297 over 6 years
    I have the same problem. An app with two dimensions of flavors. So finally in Firebase I have 6 apps. And now only two of them track data to Firebase Crashlytics. Unfortunately I can't follow your soulition. In Firebase Console > Project Settings > Account Linking > I can't see Fabric option. Also in Fabric all my apps are not connected to Firebase. And moreover when I try to connect them Fabric says that some of the already connected. It makes me crazy...
  • sww314
    sww314 over 6 years
    You will get this same error if you have not activated crashlytics in the firebase console.
  • Martin Rajniak
    Martin Rajniak over 6 years
    Actually in my experience you don't have to redownload google-service.json cause nothing important changes. Instead in my case the problem was that when I was linking existing Crashlytics account, I did not have SHA-1 key added to my Firebase Project. What I had to do is to add SHA-1 key, unlink Fabric and link it again.
  • Alex_297
    Alex_297 over 6 years
    Maybe you're right and there's no need to redownload the google-service.json. But I have quite long dialogue with Firebase Support and they didn't say anything about adding SHA-1 in Firebase Console, even when I meshioned that this point is missed from documentation.
  • jayeffkay
    jayeffkay about 6 years
    It helped me to clean my project, and try again.
  • tir38
    tir38 almost 6 years
    Confim in Fabric > App > Firebase - that it is unlinked didn't make sense to me but after doing everything else it worked. It sucks that this is the best solution.
  • Sam
    Sam over 5 years
    Man that was a long headache you helped me with. well done. FYI, you might update that firebaseconsole->project settings -> doesn't have account linking option anywhere. Luckily Fabric-linked-apps->linked Apps Manage -opened it in firebase to the page that I couldn't otherwise find. But this did the trick. They make this so damn difficult to do something so simple. ;(
  • Vito Valov
    Vito Valov over 5 years
    Linking/Unlinking doesn't make sense for my scenario since Fabric account was deleted. Removing io.fabric.ApiKey from Manifest worked for me.
  • naXa stands with Ukraine
    naXa stands with Ukraine over 5 years
    prefer SHA-256. it works the same way as SHA-1 and it's stronger.
  • Ajith M A
    Ajith M A over 5 years
    For me the reason i was getting "Failed to retrieve settings" error was that i had not initaliased the Firebase on Dashboard. I simulated my first crash and it was working fine.
  • Ruslan Berozov
    Ruslan Berozov about 5 years
    Do we need to initialize Crashlytics with Fabric in second way? (Fabric.with(this, Crashlytics()))
  • Arcao
    Arcao about 5 years
    Yes. I use second way in my app like this: Fabric.with(this, Crashlytics.Builder().core(CrashlyticsCore.Builder().disable‌​d(BuildConfig.DEBUG)‌​.build()).build()). This initialize crashlytics and disable it for debug builds.
  • Hanry
    Hanry almost 5 years
    If you don't want to connect to Firebase console, add this line to Android Manifest file if it is missing. (Till 2020 this would be valid :p)
  • Alessandro Scarozza
    Alessandro Scarozza almost 5 years
    @Hanry i done the connection (i want to move to firebase), but without that i continue to receive error in log. what i miss ?
  • sebasira
    sebasira over 4 years
    Thank you a thousand times! I can confirm that performing the assemble[Variant] task, rebuilding and unistallin/re-installing the app solves the fu**ing issue!
  • Braian Coronel
    Braian Coronel about 4 years
    where do i get the api key from?
  • Mahdi Javaheri
    Mahdi Javaheri about 4 years
    My problem was that i needed to open Firebase console and verify for first install of sdk
  • carvaq
    carvaq about 4 years
    Could you elaborate how did you unregister and re-register your app?
  • mfleshman
    mfleshman over 3 years
    This was the issue for me, but I did not have to re-download the google-service.json files.