Symbolicate Crash Log when App Name Contains Apostrophe and Space (Deployed App)

半腔热情 提交于 2019-12-23 02:32:30

问题


I have an app on the App Store that is crashing. I have tried several of the solutions on SO to symbolicate my app, using at different times the Organizer, the Terminal, and Instruments. Nothing has worked so far - the lines in the reports from the methods in my app are never symbolicated, even when the lines for Apple methods are. After looking around for a while, it seems as though this might have something to do with the app name, which is along the lines of "Angie's List" - with both an apostrophe and a space. It is too late to change the app name now as it is live on the store. I haven't seen a solution to this anywhere and would appreciate a shove in the right direction.


回答1:


Usually the app name doesn't matter, unless there is a bug in the symbolication script which I doubt. Did you check if you have the correct dSYM available?

If you scroll down your latest crash log, check the 1st line below Binary Images, it will look like this

0x1000 -   0x24cfff +YourApp armv7  <f6012c517d783486ab53e45d948b92a2> /var/mobile/Applications/A8EC3C1F-44AF-169A-BC0E-FBBC0F04CDF5/YourApp.app/YourApp

f6012c517d783486ab53e45d948b92a2 is the UUID of the executable the caused the crash.

You can find the correct dSYM using the terminal as follows:

mdfind "com_apple_xcode_dsym_uuids == F6012C51-7D78-3486-AB53-E45D948B92A2"

The string F6012C51-7D78-3486-AB53-E45D948B92A2 is the above string reformatted to uppercase and 8-4-4-4-12 groups. I guess this command will not return anything.

If you have a dSYM (e.g. in an .xcarchive), you can check its UUID in the terminal as follows:

dwarfdump --uuid YourApp.app.dSYM 

If symbolication doesn't work automatically, you can try to do it manually by following the instructions posted here: iOS crash reports: atos not working as expected

If the application has special characters like spaces or apostrophe's in it, the default Apple toolchain will not be able to symbolicate it. The reason is that the tool otool, which being used in the toolchain, can't handle that. No matter how you pass the filename. So to fix this, you have to do the following:

  1. Rename the dSYM package and remove all special chars, e.g. from My App's.app.dSYM to MyApps.app.dSYM
  2. Open the content inside the package and navigate down to Contents/Resources/DWARF
  3. Rename the file in there as you did above

Now try again. Best way to avoid all this: NEVER use special chars in your apps name. If you want the adjust the name that appears on the screen, use CFBundleDisplayName or the corresponding plist entries.



来源:https://stackoverflow.com/questions/13650516/symbolicate-crash-log-when-app-name-contains-apostrophe-and-space-deployed-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!