应用程序名称包含撇号和空格时表示崩溃日志(已部署的应用程序) [英] Symbolicate Crash Log when App Name Contains Apostrophe and Space (Deployed App)

查看:107
本文介绍了应用程序名称包含撇号和空格时表示崩溃日志(已部署的应用程序)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在App Store上有个崩溃的应用程序.我在SO上尝试了几种解决方案来象征我的应用程序,并在不同的时间使用了Organizer,Terminal和Instruments.到目前为止,仍然没有任何效果-即使我使用Apple方法的行也从未用我的应用程序中方法的报告中的行进行符号化.环顾了一会儿之后,看来这可能与应用程序名称有关,该名称与"Angie's List"相似-带有撇号和空格.现在更改应用程序名称已经为时已晚,因为它可以在商店中使用.我在任何地方都没有找到解决此问题的方法,希望朝着正确的方向前进.

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.

推荐答案

通常情况下,应用程序名称无关紧要,除非符号脚本中存在我怀疑的错误.您是否检查了可用的正确dSYM?

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?

如果您向下滚动查看最新的崩溃日志,请检查Binary Images下的第一行,它看起来像这样

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是导致崩溃的可执行文件的UUID.

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

您可以使用以下终端找到正确的dSYM:

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

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

字符串F6012C51-7D78-3486-AB53-E45D948B92A2是上面重新格式化为大写和8-4-4-4-12组的字符串.我猜这个命令不会返回任何东西.

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.

如果您有dSYM(例如,.xcarchive中的dSYM),则可以在终端中按以下方式检查其UUID:

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

如果应用程序中包含特殊字符(例如空格或撇号),则默认的Apple工具链将无法对其进行符号化.原因是在工具链中使用的工具otool无法处理该问题.无论您如何传递文件名.因此,要解决此问题,您必须执行以下操作:

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. 重命名dSYM软件包并删除所有特殊字符,例如从My App's.app.dSYMMyApps.app.dSYM
  2. 打开包装内的内容,然后向下导航至Contents/Resources/DWARF
  3. 像上面一样在其中重命名文件
  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

现在重试.避免所有这些情况的最佳方法:从不在您的应用程序名称中使用特殊字符.如果要调整屏幕上显示的名称,请使用CFBundleDisplayName或相应的plist条目.

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.

这篇关于应用程序名称包含撇号和空格时表示崩溃日志(已部署的应用程序)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆