Quantcast
Channel: Active questions tagged crash - Stack Overflow
Viewing all articles
Browse latest Browse all 7188

iOS: Desymbolicating fails or gives implausible results

$
0
0

TL;DR

atos gives me implausible info, namely that my own code is part of libobjc.A.dylib or AVFAudio. I was unable to desymbolicate via Xcode's Devices window.

I am well aware that there is vast info online on this topic — a lot of it out of date. (I have only once successfully desymbolicated a crash log...and that was back when you had to use iTunes to get the log.) In the What I Did section below, I summarize the widely-ranging advice I found. For the record, the most useful help is at https://developer.apple.com/library/archive/technotes/tn2151/_index.html

What I Got

My iOS app submission crashed during Apple's testing, and I got a crash report from App Store Connect. I downloaded the dSYM from Connect. Here are the (shortened) original, and desymbolicated (via atos) lines:

0 libobjc.A.dylib 0x19236e670 0x19234d000 + 136816
    -[MyClass myMethod:] (in MyApp) (MyClass.m:566)

1 AVFAudio 0x19f4c0698 0x19f49e000 + 140952
    -[MyClass myMethod:atIndex:] (in MyApp) (MyClass.m:823)

It also locates the main() entrypoint in the middle of a long header comment.

12 MyApp 0x1002158b0 0x1001e4000 + 202928
    main (in MyApp) (MyClass2.swift:17) // Lines 1-23 are comments

This sort of points to my using the wrong dSYM file, but I have double- and triple-checked. Suggestions?

What I Did

  1. Go to App Store Connect
  2. Go to app Activity pane
  3. Click on build # for desired build
    • I double- and triple-checked that I used the right build
  4. Scroll down, click on "Download dSYM"
  5. In Terminal, cd to Downloads folder
  6. Get relevant line of crash log file.
    • 1 AVFAudio 0x19f4c0698 0x19f49e000 + 140952
  7. Execute this in Terminal:
    • atos -arch arm64 -o 74cd25d1-...dSYM/Contents/Resources/DWARF/MyApp -l 0x19f49e000 0x19f4c0698
  8. Get the following result:
    • -[MyClass myMethod:atIndex:] (in MyApp) (MyClass.m:823)

Which doesn't pass the sanity check because MyClass is app code, not part of AVFAudio.

I also tried using Xcode

  1. Open Organizer
  2. Select build that was submitted, and click "Download Debug Symbols"
  3. Rename log file suffix from ".txt" to ".crash"
  4. Connect device (iPhone) to laptop via USB
  5. Open Devices and Simulators window and select connected device
  6. Click on "View Device Logs" to trigger drop-down sheet
  7. Drag the .crash file to the left-hand pane of the Device Logs sheet
  8. Right-click on the log file's name and choose "Re-Symbolicate Log"

Nope, log stays in hex addresses.

One problem may be that Apple was using iOS 13.2 and my device has 13.1.3. I can't get 13.2 from the App Store, only the latest which is 13.2.3.


Viewing all articles
Browse latest Browse all 7188

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>