xcode6ios8.1symbolicatecrash-log

How do I symbolicate a crash log for armv7 on iOS 8.1.1


I've got some crash logs from a user running iOS 8.1.1 on an armv7 device. Xcode will only symbolicate the lines from my app, and when I try to do it by hand I get lots of errors like this:

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: file: /Users/sgb/Library/Developer/Xcode/iOS DeviceSupport/8.1.1 (12B435)/Symbols/usr/lib/system/libsystem_kernel.dylib does not contain architecture: armv7
Can't understand the output from otool ( -> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool -arch armv7 -l '/Users/sgb/Library/Developer/Xcode/iOS DeviceSupport/8.1.1 (12B435)/Symbols/usr/lib/system/libsystem_kernel.dylib')

I'm told that Xcode will symbolicate the crash logs if I can find an arm7 device running iOS 8.1.1. I have an arm7 device running vanilla iOS 8.1, and two hours they released iOS 8.1.2, so I can't get 8.1.1 onto it.

So what do I do? I can't ask the user to upgrade and get me more logs. How do I symbolicate the crash logs?


Solution

  • The issue is that Xcode 6 does not seem to have shipped with armv7 libraries for iOS 8. Compare these two dwarfdumps:

    dwarfdump --uuid /Users/xxx/Library/Developer/Xcode/iOS\ DeviceSupport/8.1.1\ \(12B435\)/Symbols/usr/lib/system/libsystem_c.dylib 
    UUID: 415DBD55-796D-3413-819F-59EE8ACEBDA2 (armv7s) /Users/xxx/Library/Developer/Xcode/iOS DeviceSupport/8.1.1 (12B435)/Symbols/usr/lib/system/libsystem_c.dylib
    
    dwarfdump --uuid /Users/xxx/Library/Developer/Xcode/iOS\ DeviceSupport/7.1.2\ \(11D257\)/Symbols/usr/lib/system/libsystem_c.dylib 
    UUID: 17AEC0BF-EB49-3308-9292-4005DC41C50E (arm64) /Users/xxx/Library/Developer/Xcode/iOS DeviceSupport/7.1.2 (11D257)/Symbols/usr/lib/system/libsystem_c.dylib
    UUID: 5DA46A1B-0620-36F6-9C19-32E4EC6695FB (armv7s) /Users/xxx/Library/Developer/Xcode/iOS DeviceSupport/7.1.2 (11D257)/Symbols/usr/lib/system/libsystem_c.dylib
    UUID: 371F0E18-54F0-3B05-BA14-3619E4EAC99F (armv7) /Users/xxx/Library/Developer/Xcode/iOS DeviceSupport/7.1.2 (11D257)/Symbols/usr/lib/system/libsystem_c.dylib
    

    I tried for 8.0 as well, and got similar output as I did with 8.1.1. This leads me to believe that Apple just said "screw it" for armv7 devices for iOS 8 onward.

    I poked around and it doesn't look like you can download any such libraries anywhere :(

    Please correct me if you find out otherwise.