Skip to content
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

fix: Upload Symbols Failed when uploading iOS build via Xcode #2843

Closed
wbbtech opened this issue Feb 3, 2025 · 17 comments
Closed

fix: Upload Symbols Failed when uploading iOS build via Xcode #2843

wbbtech opened this issue Feb 3, 2025 · 17 comments
Assignees
Labels
bug Something isn't working

Comments

@wbbtech
Copy link

wbbtech commented Feb 3, 2025

App ID: 072cf011-5a6e-40d8-9dce-7fa1010e024d

Description

When uploading an iOS release build via xcode it shows the attached warning.

Steps To Reproduce

  1. Create a build with the following command
    shorebird release ios --public-key-path ./shorebird_public_key.pem
  2. Open file /build/ios/archive in xcode and upload to testflight

Expected Behavior

Upload ios build without warnings

Screenshots

Image

Additional Context

Shorebird 1.6.9 • [email protected]:shorebirdtech/shorebird.git
Flutter 3.27.3 • revision 3d75b30b181d1d4ce66c426c64aca2498529f2e0
Engine • revision 9637b88761740c1ea1d6efac2e2b73235e6eb4de

@wbbtech wbbtech added the bug Something isn't working label Feb 3, 2025
@bryanoltman
Copy link
Contributor

This seems similar to #2803

@bryanoltman
Copy link
Contributor

Did the archive contain a Flutter.dSYM? If so, what is its UDID? You can find this using dwarfdump -u Flutter.dSYM

@wbbtech
Copy link
Author

wbbtech commented Feb 3, 2025

I couldn't find the Flutter.dSYM file you mentioned, this is the message I get when I try to upload an iOS build: "The archive did not include a dSYM for the Flutter.framework with the UUIDs [4C4C4441-5555-3144-A1AF-4B15A67E23CB]. Ensure that the archive's dSYM folder includes a DWARF file for Flutter.framework with the expected UUIDs."

@eseidel
Copy link
Contributor

eseidel commented Feb 4, 2025

Flutter.dsym should be downloadable from the console.

e.g.

Image

Although it looks like it isn't for mac builds (filed and I don't have an iOS build to test with handy.
#2845

@wbbtech
Copy link
Author

wbbtech commented Feb 4, 2025

Flutter.dsym should be downloadable from the console.

e.g.

Image Although it looks like it isn't for _mac_ builds (filed and I don't have an _iOS_ build to test with handy. [#2845](https://github.com//issues/2845)

It is likely only available when submitting patches.

@eseidel
Copy link
Contributor

eseidel commented Feb 4, 2025

Sorry, it appears we don't currently link .dsym from the console, but we should. They can be gotten manually:
https://docs.shorebird.dev/guides/crash-reporting/uploading-symbols/

@wbbtech
Copy link
Author

wbbtech commented Feb 4, 2025

The Flutter.DSYM file is available for download, what would be the next step?
Image

@eseidel
Copy link
Contributor

eseidel commented Feb 4, 2025

You'd add it to build/ios/archive along with all the other .dsym files and upload the whole folder together. That should make the validation error go away.

@wbbtech
Copy link
Author

wbbtech commented Feb 4, 2025

Done, the error is now gone, however, it is possible to add this missing file automatically during compilation with the shorebird release command

@eseidel
Copy link
Contributor

eseidel commented Feb 4, 2025

Yes, I think we should just make shorebird release ios automatically download this file for you.

@bryanoltman
Copy link
Contributor

I'm surprised apps built with vanilla Flutter don't have this issue

@eseidel
Copy link
Contributor

eseidel commented Feb 4, 2025

a. it might be a new requirement, and b. maybe we're not providing Flutter.dsym as an artifact? Or we're providing the upstream one and the xcode tools are (silently) rejecting it do to mis-matched uiid?
I guess the easy way to test is trying flutter build ios --no-codesign and see if build/ios/archive/Runner.xcarchive/dSYM/ has a Flutter.dsym or not.

@bryanoltman
Copy link
Contributor

@bryanoltman
Copy link
Contributor

Yeah, Flutter is looking for a dsym at cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64/dSYMs/Flutter.framework.dSYM, which I don't think our build script packages up. That should be easy enough to fix.

@eseidel
Copy link
Contributor

eseidel commented Feb 4, 2025

@bryanoltman
Copy link
Contributor

Can confirm that our fork of Flutter's bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64 does not contain a dSYMs directory. Updated build_runner to use the same xcframework packaging script as upstream in https://github.com/shorebirdtech/_build_engine/commit/f3b4d0d5fc95b37985e62909ffcaff2b5044168b, which I believe should fix the issue. Engine build running now.

@bryanoltman bryanoltman self-assigned this Feb 5, 2025
@bryanoltman
Copy link
Contributor

This should now be fixed in the latest revision of Flutter version 3.27.3. You may need to run shorebird cache clear to see this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants