I'm trying to use Crashlytics but for some reason I can't get Firebase to connect with it. I've literally tried everything and read the documentations several times.
What I did so far:
I've added it through CocoaPods
Created a new Run Script:
"${PODS_ROOT}/FirebaseCrashlytics/run"
Added Input files:
$(BUILT_PRODUCTS_DIR)/GoogleService-Info.plist
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
Changed from $(INFOPLIST_PATH) in Firebase documentation to GoogleService-Info.plist in XCode 10.0+, as followed from this question
Everything on the web seems to be old and not updated to the latest Crashlytics version and this message just not want to disappear (could not get data uploaded from my device):
I've also added -FIRDebugEnabled and traced logs and found that I have the following errors:
[Firebase/Crashlytics] Version 4.0.0-beta.5
[Firebase/Crashlytics][I-CLS000000] [Crashlytics] Running on iPhone10,2, 14.0.1 (18A393)
[Firebase/Crashlytics][I-CLS000000] [Crashlytics:Settings] No settings were cached
[Firebase/Crashlytics][I-CLS000000] Root: /var/mobile/Containers/Data/Application/E9EFD0F4-85CF-4BB1-8E71-E5136293E004/Library/Caches/com.crashlytics.data/com.xxx.xxxxxxx
[Firebase/Crashlytics][I-CLS000000] Skipping report with id '2ff5a6c8e50c4734b89380c38cb369c0' this run of the app because Organization ID was nil. Report will upload once settings are download successfully
Firebase documentation:
https://firebase.google.com/docs/crashlytics/get-started?platform=ios&authuser=0
https://firebase.google.com/docs/crashlytics/test-implementation?authuser=0
Related
I'm trying to upload my dSYM using the following script
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
The script (running in debug mode) lists:
upload-symbols 3.8 build 27
Arguments:
Debug mode enabled
Google App ID: 1:y:ios:xx
Platform: ios
DSYM Paths: ["/Users/x/Downloads/appDsyms/xxx.dSYM/"]
Inspecting next path: /Users/x/Downloads/appDsyms/xxx.dSYM/
Found dSYM at path: /Users/x/Downloads/appDsyms/xxx.dSYM/
Begin processing dSYM at /Users/x/Downloads/appDsyms/xxx.dSYM
🔝here it gets stuck with no output for hours.
This has worked fine up until recently. Now the script just gets stuck forever. No error message. I tried this a few days in a row (with restarts in between) and updated to the latest Firebase version. The same applies for my colleagues.
Any ideas on how to resolve this?
The fix was: re-download the AppDsyms.zip from App Store Connect and then upload it again.
I suppose there was an error while uploading that has left the files in a corrupt state. After that, no upload was possible. This is why re-downloading the DSYMs fixed this issue.
I've set up FlutterFire for my Flutter app, but for some reason, the setup step for iOS seems to be stuck at
Checking if the app has communicated with our servers. You may need to uninstall and reinstall your app.
In addition, my crash-free statistics chart is not showing any data, so I believe it might have something to do with the setup being incomplete. I have integrated the latest versions of firebase_analytics and firebase_crashlytics since my pubspec.yaml file contains the following:
firebase_analytics: "^6.0.0"
firebase_core: "^0.5.0"
firebase_crashlytics: "^0.2.0"
The whole process is up and running for Android, but this is only occurring on iOS. I believe I have correctly configured the GoogleService-Info.plist file since Crashlytics is successfully sending crash reports to the dashboard. dSYMs are also correctly being uploaded. Is there anything I could be missing?
Currently, I am facing issues to upload dSYMs through the new uploader script.
/path/to/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p <platform> /path/to/dSYMs
I am getting success response by uploading the dSYMs
But no change on firebase console.
I have already checked the following thread:
https://github.com/firebase/firebase-ios-sdk/issues/5327
Please let me know if anyone having a solution...
Don't know what is going on in the Firebase Crashlytics.
But after 1 Day/24 Hours the dSYMs processed and now they are showing (Optional) in the same build.
Update
I have again uploaded the dSYMs today, and it uploaded quickly. Maybe some issues are there with the Firebase Crashlytics upload process!
https://github.com/firebase/firebase-ios-sdk/pull/5228
If this is a migrated app from Fabric, then you need to follow these directions,
"Important: If you're working with an app that you previously linked from Fabric to Firebase Crashlytics, pass in your Fabric API Key to run the upload symbols script. That is, in the following options to run the script, use -a fabric-api-key instead of -gsp path/to/GoogleService-Info.plist."
If this is not a migrated app, and you're seeing that the correct missing UUID is being uploaded, but you're still getting the missing dSYM error, then you need to write into Firebase Support so they can get your debug logs and check your session ID.
I had the same problem. What I found:
You should double-check if you can find this specific DSYM in your XCode archive. For this, open XCode->Organizer->Show In Finder-> DSYMs in bundle: try to find specific DSYM by ID from the dSYMS error Firebase panel. If any you can find with the same ID, you have to upload manually.
On my practice, the delay is usually several mins, max 24 hours.
Sometimes, I couldn’t find the DSYM IDs listed on Firebase in XCode archive or from AppStore downloads. What I found, that Firebase catches all distributed versions of the app. That’s why you cannot find them on AppStore if it is not on TestFlight yet. You probably can find them in your alpha archives.
However, this is my guessing.
I was wondering if anyone from Firebase guys can give more info on this.
install crashlytics via POD 'Firebase/Crashlytics'.
download DSYMS from app store.
located here
--> myapps --> select your app --> testflight --> select latest build --> Build Metadata --> Download dSYM.
now run this script using Terminal directly
YOUR PROJECT POD FOLDER PATH /FirebaseCrashlytics/upload-symbols -gsp /YOUR PROJECT/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms
more in detail step.
Open terminal, drag and drop 3 files on terminal on this order:
A--> drag an drop: "upload-symbols" which can be found in /project/Pods/FirebaseCrashlytics/upload-symbols
B--> write " -gsp "
C--> drag an drop: "GoogleService-Info.plist" which can be found in /project/GoogleService-Info.plist
D--> write " -p ios "
E--> drag an drop: "appDsyms" folder (unarchived, zip file might not work!) which usually is in Download folder /Users/username/Downloads/appDsyms
F--> Press Enter
In terminal the complete command should include -gsp and -p ios, full command looks like this: A -gsp C -p ios E
/project/Pods/FirebaseCrashlytics/upload-symbols -gsp /project/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms
it might take some time to reflact on google firebase 24 hours.
Currently, it is taking (around) 24 hr to process the dSYMs (specially, if dSYM size is large), but it should improve soon.
Most Impacted Developers:
Fabric legacy only, not migrated customers - should no see impact
Fabric legacy SDK, migrated to Firebase - impacted
Fabric legacy SDK, onboarded via Firebase - impacted
Firebase SDK (currently in beta) - no impact
It is suspected that the dsym downloaded from Apple has the incorrect bundle id. Apple is setting com.apple.xcode.dsym. (e.g. com.apple.xcode.dsym.Bingo Blast).
1- As a temporary workaround, if the developer after downloading the dsym from Apple, converted all occurrences of the incorrect bundle string with the correct bundle id (e.g. com.redhotlabs.bingo), this should allow the dsym to be ingested correctly.
See an example shell script that developers could use replacing the and with the appropriate values.
export BUNDLE_ID=''
export DSYM_PATH=''
sed -i '' -e "s/>com.apple.xcode.dsym.*\$BUNDLE_ID\
2- Try not test-crash the app or release a potentially crashy app to users for at least 10 minutes after upload-symbols has completed and the mapping file is uploaded.
3- I would recommend to upgrade to Firebase SDK (currently in beta) to avoid this issue all to gather.
I submitted an app to the Appstore but it gets refused with this message:
While processing your iOS app, Appname, errors occurred in the app thinning process,
and your app couldn’t be thinned. If your app contains bitcode, bitcode processing
may have failed. Because of these errors, this build of your app will not be
able to be submitted for review or placed on the App Store.
For information that may help resolve this issue, see Tech Note 2432.
I added this to my cproj file in the build iphone section:
<MtouchEnableBitcode>false</MtouchEnableBitcode>
I also folowed this to solve the UIWebView problem. no idea if it is related:
https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/
also updated all the packages to the latest, tried to put the minimum target OS to 9.0 tried to put enablebitcode to true, tried everything i was able to find online but without any result..
Nuget packages I use:
in the main project:
Newtonsoft.Json
RedCorner.Forms
SkiaSharp
sqlite-net-pcl
Xamarin.essentials
xamarin.ffimageloading
xamarin.ffimageloading.forms
xamarin.ffimageloading.svg
xamarin.ffimageloading.svg.forms
xamarin.ffimageloading.transformations
xamarin.forms
inside the IOS project:
sqlite-net-pcl
xamarin.essentials
xamarin.forms
These are all up to date... the app compiles and works great in the simulator..
Any idea on how I can sovle this frustrating problem?
UPDATE:
tried to package in Xamarin and then distribute in ad Hoc mode in xcode, and there it throws this error:
Failed to read property list: $ cd
/var/folders/pm/pwvftt8s1vbg4q6nj04blyym0000gn/T/
IDEDistributionOptionThinning.\~\~\~WPqMdz/Payload && /usr/bin/plutil -convert binary1 -o - -- GalShare.iOS.app/LaunchScreen.storyboardc/Info.plist
Status: pid 7230 exit 1
Stdout:
GalShare.iOS.app/LaunchScreen.storyboardc/Info.plist: Property List error:
Cannot parse a NULL or zero-length data / JSON error: No value.
Stderr:
The problem was that there was no valid image in the spashscreen.. adding an image fixed the problem
I followed the directions on Firebase/Crashlytics and I'm having trouble getting my crashes to show up in the console. At one point in time this did work but now it does not.
Here is the console output of a recent attempt to upload after a crash.
2018-12-13 19:18:13.145000-0800 MyApp[599:21332] 4.8.1 - [Firebase/Analytics][I-ACS036002] Firebase screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
file log added: true
2018-12-13 19:18:13.209647-0800 MyApp[599:21335] 4.8.1 - [Firebase/Core][I-COR000001] Configuring the default app.
2018-12-13 19:18:13.221188-0800 MyApp[599:21269] [Fabric] [Crashlytics] This version of FIRApp does not support isDataCollectionDefaultEnabled. Ignoring.
2018-12-13 19:18:13.221338-0800 MyApp[599:21269] [Fabric] [Crashlytics] This version of FIRApp does not support isDataCollectionDefaultEnabled. Ignoring.
2018-12-13 19:18:13.221364-0800 MyApp[599:21269] [Fabric] [Crashlytics] This version of FIRApp does not support isDataCollectionDefaultEnabled. Ignoring.
2018-12-13 19:18:13.221395-0800 MyApp[599:21269] [Crashlytics] Version 3.12.0 (136)
2018-12-13 19:18:13.221478-0800 MyApp[599:21269] [Crashlytics] Running on iPhone8,4, 11.4.1 (15G77)
2018-12-13 19:18:13.230209-0800 MyApp[599:21269] [Crashlytics:Crash:Reports:Event] Registered Firebase Analytics event listener
2018-12-13 19:18:13.235577-0800 MyApp[599:21341] [Fabric] [Crashlytics] This version of FIRApp does not support isDataCollectionDefaultEnabled. Ignoring.
2018-12-13 19:18:13.243302-0800 MyApp[599:21269] [Answers] Initialized
2018-12-13 19:18:13.289486-0800 MyApp[599:21269] [Fabric] [Crashlytics] This version of FIRApp does not support isDataCollectionDefaultEnabled. Ignoring.
2018-12-13 19:18:13.297664-0800 MyApp[599:21269] [Fabric] Initialized with kit versions: {
"com.twitter.answers.ios" = "1.4.0";
"com.twitter.crashlytics.ios" = "3.12.0";
"io.fabric.sdk.ios" = "1.9.0";
}
2018-12-13 19:18:13.352472-0800 MyApp[599:21341] [Crashlytics:Crash:Reports] Packaged report with id 'fb37c35c9185406b9bd72acc10709fb4' for submission
2018-12-13 19:18:13.353865-0800 MyApp[599:21341] [Crashlytics:Crash] Unable to read identifier at path *SOMEPATH**
2018-12-13 19:18:13.364756-0800 MyApp[599:21341] [FileManager] Failed to remove file '(null)' : (null)
2018-12-13 19:18:13.365267-0800 MyApp[599:21341] [Crashlytics:Crash:Reports] Unable to remove a processing item
2018-12-13 19:18:13.365617-0800 MyApp[599:21341] [Crashlytics:Crash:Reports] Packaged report with id '(null)' for submission
2018-12-13 19:18:13.428401-0800 MyApp[599:21269] [Fabric] [Fabric +with] called multiple times. Only the first call is honored, please pass all kits you wish to initialize
Documents: file:///var/mobile/Containers/Data/Application/841A117D-7E43-4CD7-AEF6-2EB205E18B84/Documents/
Database Directory: /var/mobile/Containers/Data/Application/841A117D-7E43-4CD7-AEF6-2EB205E18B84/Library/Application Support/storage.sqlite
2018-12-13 19:18:13.463439-0800 MyApp[599:21335] 4.8.1 - [Firebase/InstanceID][I-IID013010] InstanceID library version 2.0.10
2018-12-13 19:18:13.470649-0800 MyApp[599:21340] 4.8.1 - [Firebase/Analytics][I-ACS024000] Debug mode is on
2018-12-13 19:18:13.470905-0800 MyApp[599:21340] 4.8.1 - [Firebase/Analytics][I-ACS005000] The AdSupport Framework is not currently linked. Some features will not function properly. Learn more at somegoogleURL
2018-12-13 19:18:13.495759-0800 MyApp[599:21269] NO CHANGES IN ** MagicalRecord Default Context ** CONTEXT - NOT SAVING
1136.0
As you can see from the log it's having trouble uploading the reports and I can't figure out why.
Here's a brief summary of my app's history, originally it was using Fabric.io, then moved over to Firebase/Crash, then to Firebase/Crashlytics. Here's what I've tried already.
I checked my Google-Service-Info.Plist to see if it matched what was in firebase's General Settings screen.
I checked the script to make sure I'm uploading the dSym properly and it says it is. upload-symbols[65786:2975450] Successfully submitted symbols for architecture arm64 with UUID Some UUID in dSYM: myApp.app.dSYM
I went over the example for the build phases to setup crashlytics and it looks fine
I checked the app id, apple id, and the team ID and it looks correct.
I tried moving the crash around to no avail.
In my console I have not seen the following message
[Crashlytics:Crash] report submission successful
as other users have, though I believe I did a long time ago when this used to work.
[Update] I have indeed removed the Fabric.io keys from the build script and from the info.plist.
[Update] After reading the directions more carefully I noticed that the above console information was actually for a successful upload. I know this because the crash showed up and the time stamp matches the logs. To see how crashes were made to show up properly in the firebase console check the answer.
I had the same issue yesterday and resolved it myself.
I have moved from Fabric Crashlitics to Firebase by integration. After while I have decided to migrate to Firebase Crashlytics completely.
Check your Build Script. It must be only "${PODS_ROOT}/Fabric/run" without any keys how it was in Fabric. (Also input file must be specified if you have Xcode 10)
You have to remove Fabric key from Info.plist, otherwise Fabric's script shows error about keys missing.
(And It was key point) You have to remove Fabric integration. This integration silent all non-Fabric Crashlytics crashes, even your crash was sent successfully. After remove integration you have to configure Crashlytics with your project before see board with crashes.
Hopefully, it'll help you.
Alright, I'd like to preference that I'm an idiot. And all I had to do was follow the directions. So to further dumb it down for morons like me this is what you have to do to make crashes show up properly.
Run to install it on the device/simulator
Stop the debugger
Run the app without the debugger
Crash the app
Run again with the debugger.