firebase / firebase/firebase-ios-sdk

[Crashlytics] Developer has ability to mark framework ownership

Open
#14,218 9 comments 0 reactions 0 assignees View on GitHub
api: crashlytics needs-attention type: feature request
Dominant language
C++
Stars
6.7k
Forks
1.8k
Avg merge
2d 14h
Merged PRs (30d)
72

Description

### Description

I'm running into an issue where it looks like both fatal and non-fatals are not being bucketed correctly, but only when i build to a device. I have an app that references another dynamic framework of mine, where I'm calling fatalError("some message"). I also tried with non-fatals with the same effect. In the simulator, these crashes/nonfatals are logged correctly (see images below). However, with the same code, and same build settings, building to an actual device logs the issue as part of the main app as opposed to the dylib. This is causing everything to be bucketed together across my various modules, which is bad because I can't identify individual crashes easily from the dash.

I've heard there are issues with the `Enable Debug dylib support` setting but that's off for me.

|Simulator|Device|
|-|-|
|![Screenshot 2024-12-05 at 11 53 25 AM](https://github.com/user-attachments/assets/50efcfaa-29d9-4555-8c60-110fbac82936)|![Screenshot 2024-12-05 at 11 53 35 AM](https://github.com/user-attachments/assets/db3251c0-7d88-453e-b2f2-02623d513fcd)|

### Reproducing the issue

Create a vanilla SwiftUI app, and a dynamic framework. Have the app depend on the framework and call fatalError somewhere within the framework. On a simulator, crash stacktrace looks good and buckets correctly. On a device it buckets incorrectly and is all bucketed within `App.main` and greyed out stack traces to the actual crash

### Firebase SDK Version

11.6.0

### Xcode Version

16.1

### Installation Method

Swift Package Manager

### Firebase Product(s)

Crashlytics

### Targeted Platforms

iOS

### Relevant Log Output

_No response_

### If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet

```json

Replace this line with the contents of your Package.resolved.

```

### If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet

```yml

Replace this line with the contents of your Podfile.lock!

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.