bugsnag / bugsnag-dsym-upload

Scripts and Fastlane tasks for uploading dSYM files to BugSnag
https://docs.bugsnag.com/build-integrations/fastlane/
MIT License
36 stars 13 forks source link

Ubuntu doesn't have dwarfdump command #70

Closed arthurtyukayev closed 2 years ago

arthurtyukayev commented 2 years ago

This is related to this issue: https://github.com/bugsnag/bugsnag-dsym-upload/issues/50

But if you're building and uploading dSYM on Ubuntu it will fail unless you install dwarfdump as it's required here: https://github.com/bugsnag/bugsnag-dsym-upload/blob/56d201fc5cb55f01f9b7438e9720acb00795d586/bin/bugsnag-dsym-upload#L170

If you install dwarfdump using apt-get install dwarfdump, the upload will still fail because for iOS because it's requiring the llvm-dwarfdump, they have different options and the ability to print DWARF UUIDs is present only in llvm-dwarfdump

The solution is to install llvm on Ubuntu.

On Mac dwarfdump is the correct comamnd, on Ubuntu the correct command is prefixed with llvm-

luke-belton commented 2 years ago

hi @arthurtyukayev, thanks for the report - can you clarify your use case for us please?

Given that you can only use xcodebuild on macOS to produce dSYMs, in what situations are you wanting to use bugsnag-dsym-upload on Ubuntu to upload dSYMs?

arthurtyukayev commented 2 years ago

That's true, our use case in CI is that we use a Mac OS image to build the iOS app in one step, another ubuntu image to build the Android app, in another step then a final step to deploy both the generated APK and IPA to the stores via App Center, and then the final step is to upload all of the JS bundles to bugsnag.

image

I suppose the solution to this issue is to use a Mac OS image for all of it, which I suppose would work, and that's actually what we ended up doing.

However it would also be a good idea to at least support using this in CI on Linux with llvm

mattdyoung commented 2 years ago

Hi @arthurtyukayev

It seems a slightly unusual use case so we're unlikely to make changes to support this out of the box for the time being.

If you did want to continue using a Ubuntu VM to perform the upload the most straightforward workaround would be to create an alias during your upload process:

alias dwarfdump=llvm-dwarfdump

Thanks!