Xcode does not generate dSYM file - ios

In my iOS Project, I have set the Generate Debug Symbols to be Yes, but the .dYSM file is not created in DerivedData folder. I am running this application on my iPhone. Because I need it to map it to do the time profiler, because time profiler shows all the symbols in hex address. That has to be symbolicated to identify the time taking tasks.
Thanks in advance.

I went through this apple doc. This helped me. This says to set the Debug Information format to be DWARF AND DSYM in target build settings.
This apple doc says the following:
By default, Xcode saves symbols as dSYM bundles in the Build folder.
Xcode creates the default dSYM bundle path by adding the extension
.dSYM to the executable name. To generate dSYM bundles in Xcode, go to
the Build Settings area for your project, and select Debug Information
Format > Dwarf with dSYM File in the Build Options section

Related

Crashlytics automatic upload of dsym files

I have the following build setup in XCode:
I need to understand if this build script will be running every-time I build and upload a new dsym file to Crashlytics server? Or it will run only when there are version or code changes I make?
The second line "upload-symbols" is not necessary.
It uploads every time the dsym changes
Make sure that in your target's build settings, Debug information Format is se to DWARF with dSYM for both debug and release

Uploading ios build .dSYM files in Fabric takes long time

When I upload .dSYM files in Fabric it takes long time! Any Suggestions?
and why these files not included in the build?
Hope this will help you permanently, after this you do not need to upload dSYM file separately.
Just go to Build Settings and then turn on these parameters:
Debug: DWARF with dSYM File
Release: DWARF with dSYM File
Enable Bitcode: No
This problem basically occurs if you have not implemented fabric in the proper way.
For reference: see this

How to include dSYM file of an embedded framework to an app archive

My app uses some 3rd party framework. I have a framework itself and dSYM file for it.
When archiving my app, the archive does not contain the dSYM file for this framework. It contains other dSYM files for ther frameworks that're included via Cocoa Pods and built alongside with my app.
I'm using HockeyApp for app distribution, so I'm uploading my app IPA and dSYMs archive to it. But because of lacking of this exact dSYM for this exact framework, I can't see all stack trace in crash reports.
So The question:
How can I kindly ask Xcode to copy dSYM file for the framework? Should I do this manually via script during archiving?
If you have pre-built frameworks you need to add the dSYM files generated at build time to your Xcode project and add a new "Copy Files Phase" to your target's Build phases in order to end up with them in the Xcode archive.
An example of adding the dSYM files for the Realm framework would look like the screenshot below.
Make sure you select the "Products Directory" destination and the "Copy only when installing" option.
Now, when archiving your target the dSYMS will appear in the right directory.

.dSYM file missing in VSTS build

I am building the Xamarin ios app on VSTS. I see that its generating .dSYM file during the build time but when I check the artifact folder, I could see ipa file but not dSYM file.
I need dSYM file to run Xamarin Test Cloud.
Am I looking at wrong place or do I need to do something different to get .dSYM file ?
When building iOS apps from visual studio, the .dSYM file that can be used to symbolicate crash reports ends up on the build host at path:
/Users/<username>/Library/Caches/Xamarin/mtbs/builds/<appname>/<guid>/bin/iPhone/<configuration>
https://kb.xamarin.com/customer/portal/articles/1969488--where-can-i-find-the-dsym-file-to-symbolicate-ios-crash-logs-

Xcode - There are no dSYMs available for download

I want to extract the dSYM file from but when I click on "Download dSYMs..." in the Organizer I get the follow message: "There are no dSYMs available for download.".
I'm using Xcode 7.2 with a workspace generated by Cocoapods 0.39.
How can I get them?
NON-BITCODE
Here's a GIF on how to get DSYMS, compress and upload to crashlytics/fabric
Press Window > Organizer
Right-click on your app> Show in Finder
Right-click on first .xcarchive file > Show package contents
BITCODE ENABLED
You'll need to download dsyms from App Store Connect. The easiest would be to use fastlane
lane :refresh_dsyms do
download_dsyms # Download dSYM files from App Store Connect
upload_symbols_to_crashlytics # Optional for uploading to Crashlytics
end
I think #Jordan is correct--it seems that iTunes Connect is recompiling apps with bitcode so that the UUID changes, and the dSYM inside the .xcarchive can't actually be used to symbolicate the app (this appears to be a new development).
You can download the correct dSYM from iTunes Connect. Login, go to My Apps, select your app, then tap on the Activity tab at the top. Tap on the relevant build, and, assuming the app was submitted with symbols in the first place, you should see the option to "Download dSYM."
The file you get is called dSYMs (without an extension) but it is in fact a zip file. Add the .zip extension, unzip, and you'll find your dSYM(s) inside.
(I needed to do this this week since Crashlytics was complaining about a missing dSYM.)
Actually you can't download dSYM file from iTunesConnect now. There is another way to get that file.
Xcode -> Window -> Organizer -> Show xcarchive file in Finder -> Right Click Your xcarchive file -> Select "Show Package Contents"
You can see your dSYM file now.
bitcode must be enabled
if you want to get your dSYM from iTunesConnect
Build Settings > Build Options > Enable Bitcode > YES
Select device "Generic iOS Device" (or anything that works)
Archive
When exporting from archive
CHECK "include app symbols for your application to receive symbolicated crash logs from Apple"
CHECK "include bitcode"
Upload using Application Loader
Once your app has been successfully uploaded to iTunesConnect you can go to iTunesConnect.com > MyApps > [YOUR APP] > Activity > All Builds > [YOUR BUILD] > General Information > Includes Symbols > Download dSYM
#xcode8.2.1 #osx10.12.6
I've found a solution from https://twittercommunity.com/t/not-matching-uuid-bitcode/61000/2
"Crashlytics was reporting missing dSYMs with UUID looking like this: 83889b11dedd363c8e5ee56233bcc90c.
As I said, I followed the guide7 but I couldn't find that UUID. So I went in the iTunesConnect and I did the following:
Select the app
Choose the Activity tab on top
Select the build version Crashlytics is complaining about
Click the Download dSYM blue link
The downloaded file is called dSYM has no extension but it is actually a zip. So I added the zip extension and unzipped it. Inside the unzipped folder I found many dSYM files, one on which has called 83889B11-DEDD-363C-8E5E-E56233BCC90C.dSYM which matched the UUID Crashlytics was reporting as missing (even if formatted in a different way). Note also that this file is not inside the xcarchive.
Hope it can help!"
in my case, it works like charms
In my case, I could not find a dSYM file of my app in the Archives folder. If you face this, go to your Project Build Settings > Build Options > Debug Information Format and make sure it is set to DWARF with dSYM file
If dSYMs folder in package contents is empty (Ted's answer), try to check:
Build Settings > Build Options > Enable Bitcode is set to YES (Jacksonkr's answer)
Build Settings > Build Options > Debug Information Format is set to DWARF with dSYM file (daisura99's answer)
Please check them both.
Then in show package contents -> dSYMs folder, this time, you should find something.
In my case, it worked.
Form latest updates you no need to upload dSYM files manually, automatic upload is done with below process.
Step-1: Goto Target-> Build Settings -> Search for "debug information format". Set Debug Information Format to DWARF with dSYM File for all your build types.
Step-2: Goto Build Phases -> Expand Run Script and add script & input files
In Script:
"${PODS_ROOT}/FirebaseCrashlytics/run"
In input files:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
Example Screenshot:
Step-3: Finally add one more script to upload dSYM files
${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp
${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
Here, in the 2nd line of the script ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios update with your project path means your app schema name
If you got error while running the app follow my answer Xcode 10.2.1 Command PhaseScriptExecution failed with a nonzero exit code
Error:
Command PhaseScriptExecution failed with a nonzero exit code

Resources