I have an app which is available for iOS (V2.25) and macOS (V1.16). They share the same bundle identifier and the same GoogleService-Info.plist.
Both App are linked with „Crashlytics“ using Cocoa Pods. The iOS App is also setup for Firebase/Analytics. The xcode project is setup as desribed in the docs: dSYm with Dwarf for all configs, the build phase is configured, the crashlytics tests are run outside the debugger.
What happens is this: The macOS app (V1.16) reports crashes to Crashlytics as expected. The iOS app (V2.25) shows up in „Latest release“ and reports the number of crashes (s. 1st Screenshot), but it does NOT SHOW the crashes in the firebase „Crashlytics“! Even the version number V2.25 does not show up, (s. 2nd screenshot).
I have enabled -FIRDebugEnabled and I see the following log messages for the iOS version:
2020-05-21 20:48:26.492497+0200 Dictate[5662:1295303] [Crashlytics]
Version 3.14.0 (144) 2020-05-21 20:48:26.492630+0200
Dictate[5662:1295303] [Crashlytics] Running on iPhone10,5, 13.3.0
(17C54)
"com.twitter.crashlytics.ios" = "3.14.0"; 2020-05-21 20:48:26.628957+0200 Dictate[5662:1295494] [Crashlytics:Crash:Reports]
Packaged report with id 'c013eae8783c40528f5519358cc88828' for
submission 2020-05-21 20:48:26.629138+0200 Dictate[5662:1295494]
[Crashlytics:Crash:Reports] Submitting report 2020-05-21
20:48:26.629213+0200 Dictate[5662:1295494] [Crashlytics:Crash:Reports]
Submitting async
/var/mobile/Containers/Data/Application/.../v3/prepared/FD496B0D-947F-40DF-9075-5CCC8E978B2B.multipartmime
2020-05-21 20:48:26.629884+0200 Dictate[5662:1295494]
[Crashlytics:Crash:Reports:Event] Sending event. 2020-05-21
20:48:26.886129+0200 Dictate[5662:1295493] [Answers] Attempting to log
app_crashed 2020-05-21 20:48:27.419903+0200 Dictate[5662:1295498]
[Crashlytics:Crash:Reports] completed submission of
/var/mobile/Containers/Data/Application/.../v3/prepared/FD496B0D-947F-40DF-9075-5CCC8E978B2B.multipartmime
2020-05-21 20:48:27.420920+0200 Dictate[5662:1295498]
[Crashlytics:Crash] report submission successful
So it looks like on the app side everything is OK. On the firebase portal side something seems to be wrong, the iOS (V2.25) reports seem to be dropped silently.
Please note that the behaviour is exactly the same when I migrate to the new „Firebase/Crashlytics“ instead of the older „Crashlytics“/„Fabric“ !
What is going wrong here ? Any ideas ? Thanks
Firebaser here -
I believe the issue is that you have the same bundle identifier in the same Firebase project for both your macOS and your iOS app. This is known to cause issues with reporting in one app or the other.
The workaround here would be to have another Firebase project to separate your macOS and iOS apps (and thus use different .plist files), or to have a different bundle identifier between the two.
Related
iOSApp crash when shared via testflight with "COSMCtrl _foregroundAppActivity incoming bundle has nil supplied UUID, finds existing " error symptomsd in devicelog App works fine if distributed via AppCenter that uses AdHoc profile.
App only crashing when distributed via testflight but it works fine when shared with appcenter or in debug mode.
App is not crashing at launch time, it crashes after one screen so I think it may not be related to app signing certificate Dev
CPU spike is there on that event but its not that much its only 12 to 20% when checked in debug mode.
Yes I am doning some API hit at that point and parsing response JSON.
Any clue or suggestion will be appreciated.
I also faced the same issue and I found that i have updated the UI in background thread. Fix of this is I Updated the UI in Main thread and issue was fixed. I hope it will help you!
I'm using Fabric.io to monitor and collect crash data for a IOS app.
I'm receiving now a lot of crash reports for this error "Crashed: com.apple.root.default-qos" but when I check Fabric to analyze it I got the following report:
where the stack-trace of the crash is missing.
What should I do to receive the complete stack-trace?
App uses some libraries imported using CocoaPods.
I'm attaching here also a screenshot with linked libraries:
I have discovered that this report was sent because of missing "Privacy - Face ID Usage Description" (NSFaceIDUsageDescription) in Info.plist.
I have no idea why the report was not complete, but after adding this key my app has stopped crashing.
I cannot get Firebase Crashlytics to show my crashes of my Xcode iOS Swift app.
Using Xcode 9.3
I have manually (not using cocoapods) integrated the Crashlytics SDK
as specified here:
https://firebase.google.com/docs/crashlytics/get-started?authuser=0
I have tested both in the simulator and on the device
I made both crash (using an own written crash function, but also the supplied crash function), I restarted the device/simulator (because the crash is only transmitted upon the next launch)
I am not seeing any crashes in the Firebase Crashlytics console, it keeps on saying "Upgrade to Crashlytics for more powerful, realtime crash analysis"
I can confirm in the xcode debug console logs that the crashlytics is running because I see "[Crashlytics] Version 3.10.1 (129)"
I disabled bitcode does not change anything...
I looked in the system console and found:
default 21:17:49.828801 +0200 nsurlsessiond [9
reports.crashlytics.com:443 stream, pid: 72896, traffic class: 200,
tls, indefinite] cancelled
[9.1 463924B9-A95E-44FB-AA19-CFE9616E37E0 192.168.99.209.59507<->54.243.248.96:443]
Connected Path: satisfied (Path is satisfied), interface: en0
Duration: 2.586s, DNS #0.000s took 0.027s, TCP #0.028s took 0.110s, TLS took 0.255s
bytes in/out: 6086/30045, packets in/out: 7/23, rtt: 0.092s, retransmitted packets: 0, out-of-order packets: 0
Its like 9 crashes are pending/hanging? What is this cancelled?
I figured, maybe it's because there are no dsyms uploaded so I checked the build process in Xcode and found:
2018-04-16 21:55:35.270 uploadDSYM[77897:3132594] Fabric.framework/run
1.7.0 (208) 2018-04-16 21:55:35.278 uploadDSYM[77897:3132594] Firebase mode detected. 2018-04-16 21:55:35.278 uploadDSYM[77897:3132594] Using
API Key: "xxxxxxxxxxxxxxxxxx" 2018-04-16 21:55:35.279
uploadDSYM[77897:3132594] Launched uploader in validation mode
What does this "launched uploader in validation mode" mean? Does it mean that the dsym upload is not working?
I wanted to manually upload the dsyms using: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?authuser=0 but the fabric.framework does not contain any upload-symbols? The Google documentation wrong? I can see an "uploadDSYM" but this does not seam to have the same options/arguments so I guess it's not this one...?
Based on Todd's input (he is from Crashlytics) I found the issue.
The reason was that the bundleid specified in the Firebase Console for the app was not the one that I was using in the actual app! So I deleted the old app (with the wrong bundle id) and re-created it with the correct bundleid in the Firebase Console and now its working.
Note: it is not possible to change the bundleid once the app is created apparently.
My iOS app was perfectly working till yesterday. My QA was testing and there was no bug at all. But when I tried to install from Xcode to my iPhone 6 somehow it got stuck in splash screen and debugger shows absolutely no error. I googled a lot but no luck. I even tried to run previous version by switching my current branch but no luck.
This is what my debugger look like:
2018-02-07 12:49:56.982145 Marham[547:85300] 4.8.1 - [Firebase/Analytics][I-ACS023007] Firebase Analytics v.40009000 started
2018-02-07 12:49:56.982649 Marham[547:85300] 4.8.1 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see [some-Link])
2018-02-07 12:49:56.983029 Marham[547:85300] 4.8.1 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
[some-Link]to ensure proper integration.
(lldb)
and here is the surprising thing for me that, app runs without any issue on simulator but got stuck only on real device.
Do you still have this issue ?
Because I had a similar one and that was because a local storage variable was blocking the execution of the first view on the phone (the simulator was working fine).
So I advise you to put your phone on debut mode and make a breakpoint on the main function in the App Delegate.
This way, you should be able to se if there's an async function waiting for nothing.
I am getting the following error messages when our production iOS app initializes:
[Crashlytics] Version 3.8.4 (121)
[Crashlytics] Running on iOS Simulator (iPhone), 10.3.0 (16E195)
[Crashlytics:Crash] Reporting is disabled
[Crashlytics] Crash reporting could not be initialized
[Answers] Initialized
[Fabric] Initialized with kit versions: {
"com.twitter.answers.ios" = "1.3.4";
"com.twitter.crashlytics.ios" = "3.8.4";
"io.fabric.sdk.ios" = "1.6.11";
}
Every subsequent call to log an event gets the following error:
[Crashlytics:Crash] WARNING: CLSLog has been used before (or concurrently with)
Crashlytics initialization and cannot be recorded. The message was: ...
The non-production versions of the app work fine running the exact same code but with different bundleIDs. Normally when the app initializes for the first time, then I see the app populate in the Fabric dashboard, but in this case the app is not showing up.
We have an Android and an iOS version of the app, and they both use the same bundleID, so I am wondering if there is a conflict because of that? I see the Android version of the app in the dashboard, and it seems to be working properly. This is an app that originally was a Xamarin app that compiled to both platforms, neither of which incorporated Fabric/Crashlytics. We have now written native apps on each platform, and both are using Fabric/Crashlytics.
Since this is a pre-existing app in both stores, we do not have the option of changing either app’s bundleID.
Make sure you initialize Crashlytics with Fabric before calling any Crashlytics methods:
Fabric.with([Crashlytics.self])
One step I routinely miss is to make sure you've added the build phase on your target:
"${PODS_ROOT}/Fabric/run" ${FABRIC_API_KEY} ${FABRIC_BUILD_SECRET}
and either replace ${FABRIC_API_KEY} and ${FABRIC_BUILD_SECRET} with your key and secret or add custom build settings for each.
There are apparently cases where Crashlytics does not auto-activate new apps so that they show up under your list of apps, even though everything is coded correctly and data is going to their servers. In this case, send an email to Crashlytics support (support#fabric.io) that contains a copy of the info.plist entries for the app in question and they will activate it for you. I have had to do this several times, especially with app extensions.
When I finally traced it down in my situation, the error was entirely correct, but not obvious.
I saw these errors in various testing targets where the code we tested was using a custom logging wrapper which called CLSNSLogv(), but the test didn't actually go through the AppDelegate and therefore did NOT initialize Crashlytics. After trying a few things I was convinced that it worked when executed as an app, but in our configuration it was not working under the unit test configuration.
I'll likely alter our custom wrapper to bypass CLSNSLogv() during testing anyway. The biggest benefit of using that is when crashes occur on devices, so we won't be missing anything.