Xcode 9.4 addresses not desymbolicated - ios

TL;DR: I did include symbols when uploading to iTunes Connect. Crash log in Organizer shows hex addresses for my code. Xcode 9.4.
(I know this is an very FAQ, but the discussions I've found address command line tools, obsolete versions of Xcode, or getting logs from a physical device. I'm ready to humbly go to a pre-existing answer if so directed.)
What I did
On upload to iTunes Connect, checked (set to true)
Include bitcode for iOS content
Strip Swift symbols
Upload your app's symbols to receive symbolicated reports from Apple
Quote from Apple doc headed "If logs aren't symbolicated":
If you include symbols when you upload your app to iTunes Connect,
the service automatically symbolicates the logs. You don’t need the
symbols on your Mac. [Emphasis added]
(https://help.apple.com/xcode/mac/current/#/dev5d9904b70)
So I should be OK, right?
Opened release version of app project
Opened Organizer window
Selected Archives tab at top
Selected release version Archive
Clicked the "Download dSYMs..." button on the Archive Information pane
According to above quote this should not be necessary
Selected Crashes tab at top
Select a Report from the Report Name list at left
At this point (above screen shot) the stack frames from my app code are in hex.
Hover the cursor over the hex address
Click the gray right-pointing arrow that appears
This opens the document editor, but does not take me to any location in code.
Clicking the "Open in Project..." button has a similar non-effect.

Related

I downloaded the dSYM-file but the Crashlytics does not see it

I downloaded the dSYM-file but the Crashlytics does not see it. I took the file from App Store and downloaded it using "Fabric/upload-symbols". Please tell me what could be the reason
command for upload-symbols (terminal):
~/prjPath/ios/Pods/Fabric/upload-symbols -gsp ~/prjPath/ios/prj/GoogleService-Info.plist -p ios ~/dSYMPath/69c5e6e8-fbf8-3848-82db-96b1e29f594f.dSYM
response:
Successfully submitted symbols for architecture arm64 with UUID 69c5e6e8fbf8384882db96b1e29f594f in dSYM: /dSYMPath/69c5e6e8-fbf8-3848-82db-96b1e29f594f.dSYM
Successfully uploaded Crashlytics symbols
Terminal and Crashlytics console
When uploading the dSYMs through Fabric.io, they require you to compress/zip the folder first. If you haven't already, I'd give that a try first. If that fails, there is another option, if you need to proceed...
You can add your dSYM's through the Fabric Crashlytics dashboard at fabric.io. Click the Settings cog on the top right of the page and then select apps from the menu. From there select your App from your list of apps, and you'll see another tab bar menu on the page with Missing DSYMS on the right. Compress/zip your folder before uploading, and by the time you've navigated back to the dash, they'll be ready to go.

How to analyze an app's IPS file in Xcode?

I'm trying to find out why my app is crashing for certain users. I personally cannot replicate it.
The user emailed me their IPS file. This is the output after I've loaded it in Organizer, and right clicked, selected Re-symbolicate:
http://pastebin.com/8q6RE7sU
I assume this is where the problem occurred in my code:
3 FlightMachine 0x000000010003b970 0x100028000 + 80240
4 FlightMachine 0x000000010008b79c 0x100028000 + 407452
But how do I find out what is at 0x100028000 + 80240, to find out what the actual problem is?
Thank you.
If you have dsym file of your app version which got crash, you can symbolicate it using atos tool with the steps mentioned in Apple documentation
For additional info, I opened Organiser, selected Download dSYMs, then went to Devices > View Error Logs, imported the IPS file into it (by drag and dropping). Then I right clicked the relevant crash and selected re-symbolicate.
If your IPS files dont simply drag into the crash view, rename them to .crash, then back again to IPS.
Rename the .ips file to .crash file
Open xcode -> Window -> Devices & Simulators
Connect any iOS device to Mac (even if you have the file on your mac)
View Device logs (this will show all device logs)
Select "All logs"
Drag and drop the .crash file you have
Right click and "re-symbolicate log"
You need to have either the xcarchive or dsym files in organizer relevant for the build in which you have the crash.
Refer Apple docs to add dsym files

Why isn't Xcode crash report revealing the source code?

I've received my first crash report through TestFlight which I can see in the Organizer:
There are a couple of problems I'm having trying to debug the crash:
When I click the "Open in Project..." button, the project isn't automatically opened. Fine, but it's not even listed in the list of recent projects that's offered up to me as a next step (nothing is listed there, even though this is the only app I'm actively working on at the moment):
I click the "Browse..." button to open the .xcworkspace file for my project, but once the project opens, nothing useful happens. All I see is the Debug navigator opened with the crashed threads but nothing opens on the right side (editor):
Expanding the threads and clicking on the individual stack frames doesn't do anything.
The source code of the .xcworkspace file is the same code that was used to create the build that crashed. The app was archived and submitted to TestFlight with debug symbols and bitcode enabled. It's developed in Swift 2.2 with a few CocoaPods.
I've reviewed Apple's documentation on this (https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AnalyzingCrashReports/AnalyzingCrashReports.html) but I still can't figure out what I'm doing wrong.
What can I do to get Xcode to show me the source code that corresponds to this crash report?

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.

XCode: Organizer does not show crash reports anymore

there is just shortly some popup telling "symbolicating crash_XYZ",
but when it disappears, the list in "Device Logs"-tab of the XCode organizer
is empty again.
How to get the list of crashes back?
Reboot (iPhone),
Re-Sync (iTunes) did not help
if your organizer, choose “Devices” on top.
Below, in the left sidebar, you have the “Library” section and the “Devices” section.
In the Library, you should see “devices logs” where you will find all the logs (including crash logs) of all the devices you connected to your mac.
In the Devices, you can click on a device to see its specific logs.
I'm having the same problem, this is what I did: It's a kludge but you can copy crash logs from Settings.app under General > About > Diagnostics & Usage and paste into an email to yourself.

Resources