-
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
FirebaseCrashlytics run vs upload-symbols -- missing optional dsyms #5569
Comments
Hi @TKBurner , any news/feedback regarding my issue? |
We've encountered the same issue. It appears that The workaround is to call it manually with something like |
@eric-chamberlain-ck Thanks for the info. As said in my initial comment, it's also working for us if upload manually. Seems there is an issue in upload-symbols binary, because as you said, looking at https://github.com/firebase/firebase-ios-sdk/blob/master/Crashlytics/run the only diff is --build-phase option which seems to be some kind of shortcut to avoid giving platform and path to service info plist. But maybe it's doing more than this? Can someone from the Firebase team confirms this? |
@samedson is going to take a look at this. |
@dloic you're right: the When using upload-symbols directly, it should take either a directory or a list of dSYM paths, so you'll want to pass all your dSYMs paths to upload-symbols separated by spaces. |
@samedson so why is the build phase script not uploading these optional DSYMs? I have a ton of optional DSYMs that need to be uploaded. I tried downloading them from AppStoreConnect and from our CS and uploading them and it finds none of these optional DSYMs that Firebase says are missing. Something is not working properly with the way FirebaseCrashlytics wants these setup to upload. Losing confidence in this product. |
Ah so let me clarify a few things about dSYMs in general.
The easiest way to find a missing dSYM file is to run:
In general, Xcode determines if dSYMs are generated, and where they're put on the filesystem. Crashlytics has no control over this and won't modify Xcode projects. |
Thanks for the info @samedson. As mentioned by others, we're definitely seeing a new behavior. Do you confirm? Could it be related to the new Crashlytics SDK? As mentioned by @nickprkins we're seeing the same issue for AppStore build, none of the dsym downloaded manually from ASC are matching the missing optional dsyms. Could this be also related to Carthage? @eric-chamberlain-ck @nickprkins are you using Carthage? |
We are using Carthage and Fastlane. All our dSYMs are in the same folder at the end of the build, using the We ended up moving the upload out of our build phases, manually specifying the flags for |
@samedson I got no feedback from you. Should we do a hack and call upload-symbols, as described above? And thus no longer follow official documentation? |
@dloic yeah for now I would manually call upload-symbols by passing all the dSYMs to it. I haven't yet had time to figure out what is going wrong. |
Ok, thanks for your reply! I guess we'll keep the issue open until you can have a look at it, so it can be helpful for others. |
Using Cocoapods and Bitrise |
I use manual upload via Edit: Uploaded all available dSYMs from DerviedData, Carthage and other folders, after few time (maybe hours) all warning disappeared -> Edit 2 -> Wrong alarm -> #5569 (comment) |
@samedson It appears all missing dsyms are gone since Friday for our production app. We did nothing on our side. Have you find a bug on your end and manage to solve it? |
@dloic we actually just found a backend bug that was preventing missing dSYMs from showing up. They should start showing up again today or tomorrow. Apologies for the issue! |
@samedson YES!!!! Thank you. Will be looking! |
@samedson thanks, confirming they did appear again, even if it still make no sense based on discussion we had in this issue :/ We're still seeing many many crashes with missing dsyms, despite seeing nothing on AppStoreConnect, nor getting any user feedback. |
@dloic one thing to note is optional dSYMs will not hide crashes, only required dSYMs will hide crashes. If you have a crash with a missing optional dSYM, it will just show "" in the line for that library in the stacktrace. Are you seeing crashes in Crashlytics? |
No I don't think. Here are our numbers: That's why we started to have a look at all those missing dsyms files, leading to the fact we found that some reports were not properly symbolized (the essence of this bug report). Does it make sense? |
We are also facing the issue we recently moved to Firebase crashlytics SDK and implemented /FirebaseCrashlytics/run in build phase and added necessary input files but we are seeing errors saying that dsyms are missing.... any more setting to be done? |
We too are running in the same issue, hopefully there will be a way to automatically upload optional dSYMs otherwise it becomes a real pain. |
I can reproduce it too |
Same issue for me. No one of the versions are uploading the DYSM automatically, I have uploaded the files using upload-symbols. The console tells me that it have been uploaded successfully but I still have the Missing files on the Crashlytics console. I have been using it on Fabric for years and I hoped that it will work nice when I change to Firebase but it doesn't. Do u have any update? |
Same issue here. In our production (App Store) target, we have two "Run Script" build phases: In the first, we call In the second "Run Script" phase, we execute the following:
We're finding that no Optional OR Required DSYMs are appearing, even though they were a few weeks ago. This is a new issue for us as of the last < 30 days. We were running Fabric Crashlytics, and transitioned to Firebase Crashlytics earlier this year. Current CocoaPods FirebaseCrashlytics version in production: Update 1: Just did a test to look at the build logs when running this, and discovered that only one DSYM upload was done, when there should have been many. I then changed my second "Run Script" phase script to: Update 2: We manually downloaded the DSYMs from App Store Connect for each version displaying missing DSYMs on the Crashlytics console, and then manually uploaded them with Update 3 (July 15, 2020): Still no required DSYMs showing up on the console. At a bit of a loss, but will try @joshuapoq's suggestion below and report back |
@chickendiver But it seems second run script will take more time to upload and build process will wait for it, isn't it? |
For us, the difference is almost negligible: |
We have a lot of clients with many targets each so I have modified the run script to this which looks like it works and 'finds' the Google Service Plist based on it being named exactly that and no weird copying into the app. UPLOAD_ARGUMENTS="-gsp $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH/GoogleService-Info.plist -p ios $DWARF_DSYM_FOLDER_PATH $ARGUMENTS"
eval $COMMAND_PATH$UPLOAD_ARGUMENTS This adds some time to the build phase so you can add |
I did some testing on a local production version of our app in the simulator, detached from XCode. I'm still seeing missing optional symbols, as reported in this issue. However, it looks like the required symbols are being uploaded fine. The only change I made was rearranging the order of my It appears as though my problem above may be related to a different issue involving Required DSYMs, so I will stop commenting here unless I have any progress with the Optional DSYMs issue I'm experiencing. |
Ok finally got some way to get some crashes. For me both manual upload from computer as well as the script in build phase didnt work . I feel the culprit was |
@anoop4real Where did you find the dSYMs to download in Appstore Connect? I've been unable to locate a download link. |
@klmitchell2 Its AppstoreConnect-->MyApps-->Select your app-> Activity (Select from the top bar menu options, the one next to TestFlight) --> In activity select the version --> Select the build --> In General Information you will be able to see this |
@klmitchell2 hmm strange... is |
We use Carthage and implemented /FirebaseCrashlytics/run in the build phase but it doesn't work properly! Please fix it. |
Is there a reason to use the run script AND call upload-symbols separately when the run script calls upload-symbols at least twice itself? |
Wow this is such a hassle from the Firebase team. What's the reason behind all these? :/ Automation? It's so complicated. |
So, no final solution yet? |
What to do if missing |
I'm having the exact same issues. My workaround for now is same as what @anoop4real described: download from AppStore Connect and locally run the script. At least can see my crashes now. |
We're experience this issue as well. We have most of our code separated into Frameworks and it seems like none of the dsyms for those are are uploaded and are listed as "Optional". Using the |
It would already help A TON if EDIT: There is such debugging tool, you gotta pass Turns out this is what happens to my dSYMS when I enable that option:
Note that my internet is perfectly fine, high speed, not behind any firewall, sketchy VPNs and such 😞 Also, based on @samedson 's comment here:
Isn't there anything that can be done to recursively find dsyms for a given build (e.g. inside .framework folders?), and upload all of them? |
Seeing this as well, but with a required dSYM. Crashlytics says "Upload 1 missing dSYM required to process 1 crash". Says ID "EDAC2425-5C1D-3E4E-B6FD-2C7653A9EBDD" for version 1.9.26 (202011261509) is missing. But when I run the script with -d it prints:
|
@OJDee I was wondering this too when I first found the thread. After reading through, my take is yes, the reason being that |
This inspired me to build a tool that will simply crawl your archive directory and upload all dSYMs that it finds. The tool is an open source Python script, and it even caches the results of its last run so that it doesn't re-upload previously uploaded scripts! https://github.com/chickendiver/firebase-iOS-dSYM-uploader Edit: Realizing this was posted exactly one year after the original issue was opened. Happy birthday, everyone! 🎉 |
Here is my take on a dsym uploader: https://gist.github.com/cellularmitosis/37782a684ec83e1ce623ff4cc6335b7b |
Hey folks, we're going through and closing old issues. I'm going to close this for now, but feel free to reopen if you are still running into issues. |
[REQUIRED] Step 1: Describe your environment
[REQUIRED] Step 2: Describe the problem
We're seeing missing optional dsym for our apps since a month now and we can't explain why it's happening. As said in the Firebase console, it's only affecting result and grouping, but still we would like to understand why it's like this and what did broke our integration. We've seen this behavior on ad-hoc build without bitcode (we generate dsym) and also on store build (bitcode enabled, dsym pulled from ASC).
Steps to reproduce:
To reproduce the issue, I've run a test outside of our CI, to ensure the problem is not there.
Initial steps to ensure app is compiled and dsym are uploaded:
As seen in screenshot below, it seems everything is fine during symbols upload:
In the app, we have a way from our debug menu to trigger a crash, to easily test our Crashlytics integration is working from release to release. After the build is installed on a device (ad-hoc distribution), I simply open the debug menu and crash the app. Result in Firebase console:
This is telling us we're missing the AA71654B-XXX dsym, with turns to be the one generated for Eureka third-party. Having a look within the Xcode archive and using dwarfdump, I can confirm this dsym has been properly generated:
I then manually upload-symbols. End result is now the console is able to properly symbolicate new crashes (not older ones):
Does it means that during build, upload was somehow not successful? Or we're missing something in our integration?
As for our full update path, we were using Fabric Crashlytics for a while, and we did migrate to FirebaseCrashlytics with Firebase 6.17.0 in Feb. I'm currently updating Firebase to latest (6.24.0), but it seems the issue is still there.
Thanks for your help!
The text was updated successfully, but these errors were encountered: