-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FR: Crashlytics support on watchOS #4558
Comments
cc @samedson |
This would be VERY useful! |
Yes please! We are yet to find a good solution for this. Especially for Independent apps. |
Thanks for the feedback folks. Right now we don't plan on introducing WatchOS support, but we'll be happy to track requests here. Thanks! |
As far as a request reason: our biggest crashers are actually within Firebase APIs. I'd love to be able to file bug reports for those :) |
I appreciate the feedback. We are actually working on determining ways the Firebase team can receive crash reports for crashes in Firebase SDKs via Crashlytics. This will help our internal eng diagnose and track issues across our user set. As far as WatchOS. We will keep an eye on this thread :) |
@TKBurner Thanks for the update. As of now their isn't any crash reporting system like crashlytics for WatchOS. With wearable tech really gaining traction this could be very helpful for developers to find issues and allow the reporting of additional details about a crash that Xcode Crash Reporter doesn't provide. |
For those looking for an alternative, although it is not actively maintained any longer, this could be helpful. It may also give some insight for the firebase team should they decide to support WatchOS. https://github.com/kstenerud/KSCrash |
+1 |
1 similar comment
+1 |
A little update. I was able to get FirebaseCrashlytics to build for WatchOS and running in the Firebase watchos sample app. I seem to be having an issue though with the backend seeing the sample app as the watch extension appends a For example my test app is
When the app runs, the bundleidentifier shows as @TKBurner do you know if this is the case? |
After further debugging it appears the issue with it not activating on the backend is because the activation is done through the |
A little update I was able to finally get the application to auth on the backend. It seems the backend service was down for awhile and would randomly return 404 when getting settings. However the settings does seem to return Everything in the debug logs shows reports are being uploaded successfully, might just need some work on the backend to get watchos support now. |
@jostster if you contact support we can manually enable Crashlytics. We'll need the bundle ID. |
@TKBurner I was able to get things enabled but reports don't show up in the dashboard. Do you know if the backend blocks the display of extension bundleid's? The reports are recorded and uploaded fine. They are just like any other iOS crash report. If i could get the dashboard to show the reports I would be able to submit a PR for community watchOS support. |
Can you share the debug output of the upload? Sanitized, of course. |
xcode copy.log |
would love this! |
@jostster looking back at this, it seems the issue you're running into is probably due to the following log line:
Is it possible to create a new app in Firebase with your full watch bundle ID, and include it for just the Watchos Extension? |
Bundle ID validation was was slightly updated in Firebase 6.25.0 (#5126) so the error |
@samedson I am already using using the app id with @maksymmalyhin I will update to 6.25.0, however IIRC the method only displays a warning and doesn't prevent activation or report uploads. We are generating crash reports and uploading them successfully, they just don't show in the dashboard. |
@jostster can you send out one more set of logs with |
@samedson I'm currently working to get my changes into the updated fork instead of keeping them local. Once that is done, I will generate new logs. I assume you were the one working with Julia requesting the logs? |
That's right! We're talking through both channels. Sounds good 👍 |
@samedson Here are the logs. I had to start fresh but good news is, it seems alot of the changes I did between the original start of this ticket and now have been added into the repo already for watchOS support. |
Ok looking at our logs, I believe the issue right now is our backend doesn't currently recognize Also is your fork public? Can I take a look at your changes? |
@samedson the new report id is Currently I am uploading the the repo is https://github.com/underarmour/firebase-ios-sdk/tree/feature/watchos-support I still need to go back through and make sure all the changes I made locally several months ago have been fixed, but this atleast is running in a simulator test application. |
Hmm haven't seen anything that indicates why they're getting dropped - I'm going to try to get your branch running on my machine at some point to see if there's anything obvious. In the meantime, can you send me a zip of the You can find them by:
|
@samedson I emailed the zip file to Julia and asked her to forward it to you. There was some org id's in there and a cache key file I didn't think would be good to upload here. |
A couple tips @jostster, looking at the zip
|
@samedson Yes, when I run the build to force a crash I run it on the simulator but don't run it through xcode, that way the crash is recorded and not blocked by the debugger. When I upload, I run it through the debugger to get the logs. |
Ok then there seems to be a larger problem then. What I'm seeing is we aren't writing out any crash files, or non-fatal error files for that matter. If you check out: https://github.com/firebase/firebase-ios-sdk/blob/master/Crashlytics/Crashlytics/Models/FIRCLSInternalReport.m#L25-L34:
For looking deeper at this this:
|
@samedson I may have misunderstood you. Did you want me to trigger a crash, then send you the zipped v5 folder? I just sent you the v5 folder, without triggering a crash. |
Ah if you could trigger a crash, then send the v5 folder, that would be awesome 👍 |
Sent it to Julia @samedson . I also added a |
Hey @jostster, circling back on this, I took a look at the zip you sent and found what's currently preventing WatchOS reports from being uploaded. Adding information here in case anyone wants to work on this:
This is most likely failing because we have compiler macros that return false here, and skip the call to |
@samedson Thanks so much for the assistance. You are correct that watchOS doesn't have access to thread support. I have fixed the file format issue and was able to successfully see crash reports in the dashboard! There are a few limitations like mach exceptions that watchOS are not able to catch and signal crashes, but this should atleast help people find some crash errors within code. I will submit a PR for watchOS support for Crashlytics! |
That's incredible - looking forward to it! |
This looks all nice and amazing. Now when I upgrade the FirebaseAnalyticsBinary and FirebaseCrashlyticsBinary to 6.32.0 with carthage update, then I don't get any watchOS framework, it tells me, "Building for watchOS Simulator, but the linked and embedded framework 'FirebaseCrashlytics.framework' was built for iOS + iOS Simulator." |
@choli Thanks for the report. Currently we only support watchOS via CocoaPods. Also it looks like we did not properly update the Firebase pod to represent that. We'll fix that problem in 6.33.0. In the meantime, watchOS can be accessed with |
Note there appears to be another issue that I am looking into regarding watchOS signal crashes. #6434 |
@paulb777 Thanks for the quick response, I will try that right away. Is there a roadmap to add this to carthage/SPM anytime soon? I don't see any Carthage projects that I could contribute on? |
Thanks @jostster. I created #6435 for the proper Firebase pod support. @choli Our Carthage support is binary only and we're not likely to add watchOS support there. We'd like to add it to SPM, but have not yet found a good way in SPM to manage the partial set of products in https://github.com/firebase/firebase-ios-sdk/blob/master/Package.swift that support watchOS currently. |
@paulb777 is there anything in particular causing watchOS to not be supported with carthage? We too use carthage, so would find it beneficial so that we don't have to incorporate another package manager into our deploy process. |
@jostster It's primarily a matter of prioritization.
Even with those factors, we'd still consider a PR that adds watchOS binary build support for .frameworks and .xcframeworks to https://github.com/firebase/firebase-ios-sdk/tree/master/ZipBuilder. |
Thanks @paulb777 I can take a look at ZipBuilder if I have time. I'm guessing it just needs support in |
@jostster Here's a rough idea of what would need to be done:
|
Please add Crashlytics support to watchOS, so that we can get crash reports from Firebase Crashlytics for watchOS apps just like we can for iOS apps.
The text was updated successfully, but these errors were encountered: