Skip to content

[bug]: (Pub workspaces & Melos) dSYM upload fails | uploadDebugSymbols = false #403

@FranRiadigos

Description

@FranRiadigos

Is there an existing issue for this?

  • I have searched the existing issues.

CLI Version

1.2.0

Firebase Tools version

13.28.0

Flutter Doctor Output

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.32.0, on macOS 15.5 24F74 darwin-arm64, locale en-ES)
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.3)
[✓] VS Code (version 1.100.3)
[✓] Connected device (4 available)
[✓] Network resources

• No issues found!

Description

I'm not adding the full flutter doctor -v output as I believe it's not relevant for this issue.
Please, let me know otherwise.

Regardless if I stated on the title "Pub workspaces", this would also occur just using old Melos version or with any other project structure that varies from default.

Going straight to the point:
The function addFlutterFireDebugSymbolsScript at packages/flutterfire_cli/lib/src/firebase/firebase_apple_writes.dart is unable to find firebase_crashlytics dependency on a different project structure than the usual one.

Details:
With the recently introduced "Pub workspaces", .dart_tool/package_config.json resides at the root of the project, which is not the flutterAppPath.

For instance, we have the main app at ./apps/name as recommended by Melos or Pub dev if I'm not wrong.

Despite the fact that addFlutterFireDebugSymbolsScript tries to find the dependency also in the "main app" pubspec.yaml, the firebase_crashlytics dependency might not be there, as following a typical "workspace" structure, the developer could have delegated all that logic to an internal package at ./packages/[name].

This is exactly our case, so ultimately, since no firebase_crashlytics dependency was found, uploadDebugSymbols is being set as false in the "main app" firebase.json file.

Additionally to that, the build phase script is also not generated.

Current fix:
We just added firebase_crashlytics dependency back to our "main app" pubspec.yaml, which is now redundant.

Potential fix:
Instead of looking up for package_config.json or trying to figure out if the project follows a "workspace" structure, I recommend that the CLI simply provides a new option such as --app-dir.

This way, we can just run flutterfire configure / reconfigure from the root.

Steps to reproduce

As explained above.

Expected behavior

The CLI should detect the firebase_crashlytics dependency.

Screenshots

No response

Additional context and comments

This issue, closed by the OP, pointed me to the right direction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    blocked: customer-responseWaiting for customer response, e.g. more information was requested.bugSomething isn't workingenhancementNew feature or requestkeep open

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions