It looks like we are missing dSYMs to process crashes for the versions - ios

I have enabled the project settings of the project and target and set Debug Information Format for both Debug and Release to DWARF with dSYM File.
I have enabled the Bitcode to NO.
But I am getting the error "we are missing dSYMs to process crashes for the versions below".
I have followed the below steps to generate dSYMs file.
1. Go to the Window Menu -> Organizer in Xcode.
2. Select the right version of build and click on the button "Download Debug Symbols" on the right panel
3. Right Click on right version of build and select show in Finder.
4. Select an .xcarchieve file then right click on that and click on Show Package contents
5. Then Go to *dSYMs folder* and select .dSYM file and compress that file.
6. Now Final Step is to upload compressed file on fabric.
My question is when i add the new DSYM file into the fabric, will it remove the existing crashes logs??

Yes, #Arun because every time you recompile your project after adding a line of code, the dSYM changes because the address of your lines of the code in resulting binary is not the same that's the reason remove the existing crashes logs. You can look below link https://docs.fabric.io/apple/crashlytics/missing-dsyms.html#upload-symbols-script

#Arun, Make sure you are uploading the correct dSYM (UUID of missing dSYM matches with uploading dSYM). If fabric do not process these dSYM then reach out to us at support#fabric.io and we can look into this further.

Related

Missing UUID dSYM within the AppStore downloaded dSYMs (more targets app)

I face to the following issue with iOS app (XCode 10.3):
Crashlytics says that I have a missing dSYM, and provides the missing dSYM UUID (I have both required and optional UUIDs missing)
The app is BitCode app, and dSYMs are downloaded from AppStore, and uploaded to Crashlytics. I see many other crashes from the other dSYMs that were downloaded and de-symbolicate correctly.
The app is multi-target app. Before, when the app was just single target app, everything worked fine. The additional targets seems to be an issue.
All targets have BitCode and DWARF with dSYM selected
All targets call Crashlytics run in build phase (at least I believe I do this correctly)
Targets are watch app, watch app extension, Siri intent, Siri intent UI, and the iOS app widget.
I have manually opened the downloaded dSYM from AppStore and the missing dSYM UUID is really missing.
I also checked the locally built app archive, and the dSYM UUID is not there (yes, expected result)
Any idea, where to get the missing dSYM, would make a bit happier... Please.
Sometimes the UUIDs that are assigned on appstoreconnect are incorrect. The crash reports contain the correct ones -- i.e. the stack trace attributes a line to the correct binary image.
In the case of the uploaded dsyms having incorrect UUIDs Crashlytics is not able to match the line in the stack trace to any uploaded dsyms so it flags them as missing.
But there is a way to rewrite the UUID of a dsym and then re-upload it to crashlytics.
Note: This method is risky. If you overwrite the dSYM's UUID with an incorrect one and then upload it to Crashlytics, there is no way to correct that mistake. So you need to be absolutely sure that you A) are looking for the correct binary image; and B) that you have the correct UUID.
Here is how to do it:
Step A: In Crashlytics:
Note down the version of the build for which a dsym is missing
Note down the UUID of the missing dsym
Step B: Find an unsymbolicated line in one of your crash files for that version:
(note: in most cases it's your app's binary image, in which case you can just skip all steps here and then just use your app's name as binary image)
Open Xcode -> Window -> Organiser
In the left-hand pane, select Crashes
Use the drop-down menu in the top left-hand corner to select the version you are interested in
Once all the crashes for that version are downloaded, locate the crash you are interested in
Find the line in the crash report you are interested in and which is not symbolicated
Note down the binary image
Step C-a: Locate and replace the dsym with the incorrect UUID manually:
Open Xcode -> Window -> Organiser
In the left-hand pane, select Archives
Select the archive that corresponds to the version you noted down in Step A)
In the right hand pane, select Download Debug Symbols
Once finished downloading, in the Organiser right click the archive -> Show in Finder
In Finder, right click the archive -> Show Package Contents
Go to the dSYMs directory
Optional: Sort the finder list by Size in DESC order
Starting from the top, right click the first dsym file -> Show Package Contents
Navigate to Contents -> Resources -> Dwarf
Compare the name of the file inside the Dwarf directory with the binary image name you noted down in Step B) 6.
If it matches, follow the steps outlined in this excellent writeup to replace the UUID manually
If it doesn't match, repeat step 9 - 11, going through all dsym files until you found the right one
Step C-b: Locate and replace the dsym with the incorrect UUID automatically:
Open Xcode -> Window -> Organiser
In the left-hand pane, select Archives
Select the archive that corresponds to the version you noted down in Step A)
In the right hand pane, select Download Debug Symbols
Once finished downloading, in the Organiser right click the archive -> Show in Finder
In Finder, right click the archive -> Show Package Contents
Go to the dSYMs directory
Use this command line program to replace the UUID by providing the binary image name and correct UUID
Try using mdfind "com_apple_xcode_dsym_uuids == <UUID>" to find a dSYM witha specific UUID on your machine.
If this doesn't work then my hunch is that crashlytics catches crashes from these non-supported targets, also shows missing UUIDs but the dSYM files are not available at all, not even on iTunes Connect.

Missing dSYMs in Crashlytics IOS

Hello I have been digging to find the solution but unfortunately I have not been able to find an answer. My issue is that I have my application that uses crashlytics. When pulling my crashlytics I see the Dsyms missing issue, i tried to add all the missing ones through the organizer but unfortunately i am not able to find all of them. please note my applications are not in the app store and I do not have itunes connect I am using an enterprise account. I noticed when running my application through the simulator and forcing a crash, Fabric will ask me for a new dSYM that I am not able to find. where can i find this dsym? I have verified through my build settings that I have dWARRF with dSYM enabled on both debug and release. If you have any ideas please let me know. Thank you!!
If you’re using Xcode 10 on a new project, Xcode 10 adopts a new build
ordering that is independent of the ordered list in the Build Phases
of Xcode.
Put "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)" into your
Fabric Run Script’s “Input Files” section to ensure your
installation of Fabric goes smoothly.
Reference to Crashlytics documentation.
You can do the following (it works for me):
Archive a binary of your target. Select your Scheme and make sure you have "Generic iOS Device": selected. Then in the Xcode menu, go to Window->Organizer and you will see your build
Select the build. Check the date/time and version(build) numbers to ensure it is the one you want. Right-Click and select "Show in Finder"
Right-click in the .xcarchive file and select "Show Package Contents"
Look for the dSYMs directory. Right-click and compress.
Move the dSYMs.zip file to your Desktop for easy uploading to Crashlytics.

missing dSYM files for Instabug

I've inherited a project with several linked frameworks by virtue of gitmodules. For crash tracking we use Instabug. It keeps asking me for symbol files that I can't find. Note that I did manage to get some of the dSYM files from iTunes Connect.
An example of what it's asking me is:
F9E0A7B7-5989-3D98-A6ED-29F8D1B04A9E
Things I've tried that did not work:
1. can't find symbols for framework
2. using DWARF with dSYM Debug Information Format
3. built my project using both iOS10 and iOS11
Anyone else encounter this?
I'm using:
Xcode 9
Build target: iOS10
If you have enabled Bitcode, you can find the dSYMs inside your app's archive.
You can find the archive via the Xcode Organizer window, by selecting your app in the list on the left side of the window. Once you find the archive, right click on it and select Show in finder.
In the finder, right click on the archive file and select Show Package Contents. In there somewhere there should be a folder named dSYMs.

Download dSYM fails "Missing App Version"

When I try to download the dSYM from the organizer, it gives me this error :
Missing App Version
An app record for “co.**” was found but a matching version for “1.0.3” build “10” was not.
I have enabled Bitcode. It's a swift app with Swift and Objective-C pods. Xcode Version 7.2 (7C68)
When I right click on the archive and look at it's package contents in Finder, I see a dSYMs folder. I zipped it and uplaoded it to Crashlytics, but it still shows dSYMs missing for all my builds. It even has App.dsym with some dsyms with UUIDs and others for my pods.
Is this an XCode bug?
I see somene has posted a similar question for tvOS on the apple developer forum but there are no answers there. I am not allowed to ask a question there for some reason :p
I haven't added a build to iTunesConnect yet, is that necessary to download dSYMs? Where does XCode download the dSYM from? Could it have something to do with the fact that my bundleId is of the form co.someString and not co.someString.someOtherString? I guess not, I'm just looking for anything.
Is disabling bitcode the only way to be able to get the dSYM for me?
Sounds like your dSYM file doesn't match the application binary, even if app version number and build number would be correct. Every time you build (archive) app, you get new and different dSYM file, too.
You cannot use just any dSYM file from any archived project, even if you made no code changes between archives. You must get the exactly correct archive and dSYM from within it.
Here's related info from HockeyApp, similar service to Crashlytics. Even if they are diff services, symbolicating crash reports is similar problem.

Xcode Crash Organizer does Not Symbolicate .xccrashpoint Files

The new Xcode 7 "Crashes" tab in the organizer shows a handful of crashes from the AppStore for my app. According to the documentation, there should be a stack trace. However, none of the 6 crashes have symbolicated stack traces:
I've tried clicking "Open in Project" but it's just as useless:
Of course, I included the dsym and debug info when I submitted to the store. I still have the submission build in my organizer, so the dsyms are still present on my machine. How can I get a proper stack trace on this?
Not ideal, but if you right-click an .xccrashpoint file, select "Show Package Contents", you can navigate its folder structure to find the actual .crash file which you can extract and then symbolicate through the command line using steps described here:
Run
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
Ensure that DEVELOPER_DIR is set:
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
Short Story:
In Xcode 9.0: "The Crashes Organizer symbolicates unsymbolicated logs, if they are selected, using a local .dSYM indexed by Spotlight. (22550064)"
You can check out more on this in Xcode's Documentation.
Long Story:
When Xcode builds an .xcarchive for a machine code app it generates .dSYM files that are being indexed by Spotlight by default. For an app uploaded with bitcode you can use the Archives organizer to download dSYMs where they are being indexed by Spotlight by default.
If you choose not to include symbol information when uploading your app to the App Store, the crash logs downloaded by the Crashes Organizer will be unsymbolicated. If you have the appropriate .dSYM files that were generated for the app version that crashed, Xcode will automatically symbolicate the crash when you click on the crash to view it. This functionality exists in Xcode 9.0+. You may manually invoke a re-symbolication by right-clicking on the log detail view and clicking "symbolicate".
I'm doing this for the first time in Xcode 10. Right clicking on my crash log and selecting Symbolicate was having no effect. I selected the build in the Archives section of the Organizer window and clicked the "Download Debug Symbols" button in the right-side pane. This didn't seem to do anything, but when I went back to Crashes and told Xcode to symbolicate the same crash again, this time it worked.
You need to have the app's dsyms local. If this was a build uploaded from say, a build box, you won't have them. Head to App Store Connect, click the Activity tab, find your relevant build, and tap into it. The version details screen includes a link to download the dSYMs - do so, and expand the .zip file they download as.
Now back to your crashes in Xcode - they will symbolicate successfully.
Sanity tip: ensure your local source is at the same commit as the crashing release. Otherwise, if the source file has changed since the release, Xcode can dump you on the incorrect line. e.g. line 127 of your source has now moved to line 129 since you added two lines recently... and the crashes view has no idea about those changes. It'll show you line 127 crashing where the crashing code is actually on line 129.

Resources