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.
Related
I am using Xcode Version 13.4.1 (13F100) on a MacBook Pro with macOS Monterey 12.4 and programming in Objective-C.
I would like to log debug messages when my app is running on the iPhone device AND is NOT attached to Xcode. I tried OSLog like described here: https://www.avanderlee.com/debugging/oslog-unified-logging/
However when I open the Console App and select my connected iPhone after running the app the log is empty and I have to explicitly click on "Start streaming" only then I can see my log when I start the app again.
I would like to log when the iPhone is not connected and the app is running and then close the app and connect the iPhone and see the log from the app run. I don't want live streaming but look into past logs.
Is there a way to do that?
I wrote to Apple Developer Support and they said the following:
If you log in your code using OSLog, then you can retrieve those
messages using the Terminal command ‘log’ later on.
For example, with the device named “iPhone" connected to the Mac, you
can retrieve the log info from the last 3 minutes with:
> % sudo log collect --device-name iPhone --last 3m
You can then use Console to look through the saved logs, or you can
parse out the log data from the command line with the ‘log' command.
See its man page for usage.
Here a link on how to use OSLog:
https://www.avanderlee.com/debugging/oslog-unified-logging/
In Objective-C this worked for me:
#import <os/log.h>
os_log(OS_LOG_DEFAULT, "Some message");
I followed Apple Developer Support's advice and it worked for me.
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 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.
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.
Running calabash-ios cucumber for simple iPhone app. Simulator is working perfectly. When trying on physical device, app loads, crashes, then loads again, and crashes again, on a loop.
Error message:
Unable to start. Make sure you've set APP_BUNDLE_PATH to a build supported by this simulator version
Calabash::Cucumber::Launcher::StartError: Time out waiting for UIAutomation run-loop Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError.
Logfile /var/folders/9s/yttj4cz93m98hqs6bfw2x8xr0000gn/T/run_loop20150522-12657-dr3m49/run_loop.out
2015-05-22 19:58:11 +0000 Fail: An error occurred while trying to run the script.
Instruments Trace Complete (Duration : 2.594758s; Output : /var/folders/9s/yttj4cz93m98hqs6bfw2x8xr0000gn/T/run_loop20150522-12657-dr3m49/trace.trace)
to run the script. UIAScriptAgentSignaledException
(Calabash::Cucumber::Launcher::StartError)
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.14.3/lib/calabash-cucumber/launcher.rb:766:in `new_run_loop'
/Library/Ruby/Gems/2.0.0/gems/calabash-cucumber-0.14.3/lib/calabash-cucumber/launcher.rb:631:in `relaunch'
Steps:
loaded app-cal on device
ran in command-line using:
$ DEVICE_TARGET=udid BUNDLE_ID=com.company.app DEVICE_ENDPOINT=http://ip:37265
Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError
The probably cause of this is that the device is not enabled for UIAutomation. The device must be enabled for development. A device is enabled for development if it appears in Xcode's Device's window (Shift + Command +2) and you must enable on-device testing manually by visiting the device's Settings.app > Developer tab.
If you have recently upgraded the iOS version we recommend that you check the UIAutomation settings again and perform a restart. Often, after an upgrade, Xcode cannot download debugging information from the device. Look at Xcode's Device's window. The device must appear without any warnings.
Sometimes devices get into a bad state and Xcode cannot communicate with it. We recommend trying to interact with the device with Apple's Instruments to clear this bad state.
All this information and more can be found on the Calabash iOS Hot Topics page. https://github.com/calabash/calabash-ios/wiki/Hot-Topics#6-errnoeintr-interrupted-system-call