swift - iOS 8 - Unable to symbolicate symbols coming from custom dynamic framework -
here have: - ios app called vacationspots (.app file)
app dsym file
dynamic framework named vsutilities (.framework file)
dynamic framework dsym file
here sample project source code: https://www.dropbox.com/s/nl32xlk98lnl1mv/vacationspots.zip?dl=0
i made app crash @ launch force unwrapping nil optional.
below part of symbolicated crash report. notice vsutilities calls not symbolicated:
thread 0 name: dispatch queue: com.apple.main-thread thread 0 crashed: 0 libswiftcore.dylib 0x00333470 0x1d1000 + 1451120 1 vsutilities 0x001c0bd8 0x1b9000 + 31704 2 vacationspots 0x0007a418 spotsviewcontroller.awakefromnib() -> () (spotsviewcontroller.swift:38) 3 vacationspots 0x0007a4b8 @objc spotsviewcontroller.awakefromnib() -> () (spotsviewcontroller.swift:0) 4 uikit 0x2940036a -[uinib instantiatewithowner:options:] + 1910 5 uikit 0x29641818 -[uistoryboard instantiateviewcontrollerwithidentifier:] + 196 6 uikit 0x2964197a -[uistoryboard instantiateinitialviewcontroller] + 58 7 uikit 0x291f8ea0 -[uiapplication _loadmainstoryboardfilenamed:bundle:] + 84 8 uikit 0x28fccebc -[uiapplication _loadmaininterfacefile] + 260 9 uikit 0x291f7d80 -[uiapplication _runwithmainscene:transitioncontext:completion:] + 1256 10 uikit 0x2920bb9c __84-[uiapplication _handleapplicationactivationwithscene:transitioncontext:completion:]_block_invoke3228 + 36 11 uikit 0x291f53aa -[uiapplication workspacedidendtransaction:] + 134 12 frontboardservices 0x26100c7e -[fbsserialqueue _performnext] + 230 13 frontboardservices 0x26100f70 -[fbsserialqueue _performnextfromrunloopsource] + 48 14 corefoundation 0x24ddf68e __cfrunloop_is_calling_out_to_a_source0_perform_function__ + 14 15 corefoundation 0x24ddf27c __cfrunloopdosources0 + 452 16 corefoundation 0x24ddd5ea __cfrunlooprun + 794 17 corefoundation 0x24d30bf8 cfrunlooprunspecific + 520 18 corefoundation 0x24d309e4 cfrunloopruninmode + 108 19 uikit 0x28fc65bc -[uiapplication _run] + 524 20 uikit 0x28fc0ba0 uiapplicationmain + 144 21 vacationspots 0x00081d4c main (appdelegate.swift:26) 22 libdyld.dylib 0x249df872 start + 2
here part of symbolicatecrash
command output:
finding symbols: .fetching symbol file vsutilities--[undef] searching []...-- no match searching in spotlight dsym uuid of 9acae8d3326233adaaea24609e951306 running mdfind "com_apple_xcode_dsym_uuids == 9acae8d3-3262-33ad-aaea-24609e951306" running mdls -name com_apple_xcode_dsym_paths \/users\/maxkorytko\/library\/developer\/xcode\/deriveddata\/vacationspots\-citeoysntsbhwwfzcqytfuzhnqze\/build\/products\/debug\-iphoneos\/vsutilities\.framework\.dsym @dsym_paths = ( /users/maxkorytko/library/developer/xcode/deriveddata/vacationspots-citeoysntsbhwwfzcqytfuzhnqze/build/products/debug-iphoneos/vsutilities.framework.dsym/contents/resources/dwarf/vsutilities ) @exec_names = ( vsutilities ) running mdfind "kmditemcontenttype == com.apple.application-bundle && (kmditemalternatenames == 'vsutilities.app' || kmditemdisplayname == 'vsutilities' || kmditemdisplayname == 'vsutilities.app')" running mdfind "kmditemcontenttype == public.unix-executable && kmditemdisplayname == 'vsutilities'" did not find executable dsym ## warning: can't find unstripped binary matches version of /var/mobile/containers/bundle/application/be14c237-9798-4030-9806-11f3386a0077/vacationspots.app/frameworks/vsutilities.framework/vsutilities ..fetching symbol file vacationspots--[undef] searching []...-- no match searching in spotlight dsym uuid of d2731d399b5132329532fea91df1ca19 running mdfind "com_apple_xcode_dsym_uuids == d2731d39-9b51-3232-9532-fea91df1ca19" running mdls -name com_apple_xcode_dsym_paths \/users\/maxkorytko\/library\/developer\/xcode\/deriveddata\/vacationspots\-citeoysntsbhwwfzcqytfuzhnqze\/build\/products\/debug\-iphoneos\/vacationspots\.app\.dsym @dsym_paths = ( /users/maxkorytko/library/developer/xcode/deriveddata/vacationspots-citeoysntsbhwwfzcqytfuzhnqze/build/products/debug-iphoneos/vacationspots.app.dsym/contents/resources/dwarf/vacationspots ) @exec_names = ( vacationspots ) running mdfind "kmditemcontenttype == com.apple.application-bundle && (kmditemalternatenames == 'vacationspots.app' || kmditemdisplayname == 'vacationspots' || kmditemdisplayname == 'vacationspots.app')" running mdfind "kmditemcontenttype == public.unix-executable && kmditemdisplayname == 'vacationspots'" running /applications/xcode.app/contents/developer/toolchains/xcodedefault.xctoolchain/usr/bin/lipo -info '/users/maxkorytko/library/developer/xcode/deriveddata/vacationspots-citeoysntsbhwwfzcqytfuzhnqze/build/products/debug-iphoneos/vacationspots.app/vacationspots' running /applications/xcode.app/contents/developer/toolchains/xcodedefault.xctoolchain/usr/bin/otool -arch armv7 -l '/users/maxkorytko/library/developer/xcode/deriveddata/vacationspots-citeoysntsbhwwfzcqytfuzhnqze/build/products/debug-iphoneos/vacationspots.app/vacationspots' number of symbols in /users/maxkorytko/library/developer/xcode/deriveddata/vacationspots-citeoysntsbhwwfzcqytfuzhnqze/build/products/debug-iphoneos/vacationspots.app/vacationspots: 335 + 2081 = 2416 found executable /users/maxkorytko/library/developer/xcode/deriveddata/vacationspots-citeoysntsbhwwfzcqytfuzhnqze/build/products/debug-iphoneos/vacationspots.app/vacationspots -- match
faced similar today. there 2 problems in case:
.framework inside .app not "indexed enough"/get metadata mdfind, kmditemdisplayname, unless moved out of .app.
symbolicatecrash using mdfind "kmditemcontenttype == public.unix-executable", while real kmditemcontenttype framework executable "public.data".
solved by:
moving .framework out of .app (in case moved stuff desktop, sure indexed correctly)
modifying (copy of) symbolicatecrash not "kmditemcontenttype == public.unix-executable" "kmditemcontenttype == public.data"
p.s. can use mdls indexed metadata attributes of file:
macbook-pro-ge:~ eg$ mdls -name kmditemcontenttype ~/desktop/opasappkit.framework/opasappkit kmditemcontenttype = "public.data"
as modified version of symbolicatecrash, i'm not sure whether can post here is, here's diff, there's single line that's changed.
btw, looks xcode uses symbolicatecrash symbolicating well, patching script inside xcode allowed me symbolicate crashes custom dynamic frameworks there too.
Comments
Post a Comment