我在 iOS 上收到了我的(主要是 C++)应用程序的一堆崩溃日志。我的问题是我似乎无法正确地表示这些崩溃报告。
在 iOS 上剥离调试符号以进行发布的“正确”设置是什么?我知道您想要删除调试符号,这样应用程序的下载大小就不会大得离谱。
但问题是,它似乎使崩溃报告几乎不可读。
xcode 存档上的 dSYM 文件是否会被发送并最终被用户下载?
或者它只是为了将来的符号目的而保留(在我自己的机器上本地完成,在 xcode 上)?
或者它只是为了将来的符号目的而保留(在我自己的机器上本地完成,在 Xcode 上)?
这个。您的“发布”配置(或用于分发的任何配置)应具有以下设置:
默认隐藏符号:是
Xcode 仍会生成一个 dSYM 文件夹,您将使用该文件夹来符号化崩溃日志。有 3 种处理符号的方法:
使用 Xcode。为此,无论何时发布,您都需要使用“产品”->“存档”功能。创建存档后,您可以选择“导出”,然后选择“保存以用于 iOS App Store 部署”。之后,您可以将崩溃日志拖到“设备日志”窗口的左侧,Xcode 将为您将它们符号化。
使用 Xcode.app 文件夹内的 symbolicatecrash 工具手动进行符号化。如果您已向用户发布代码但没有 Xcode 存档,这会很有用。您需要确保崩溃日志与二进制文件和 dSYM 匹配,否则它将无法工作。
使用第三方工具收集崩溃报告并为您进行符号化。示例包括 Crashlytics、Bugsense 或 HockeyApp。
对于任何事情,如果您想知道其正确设置,您所要做的就是:
在 Xcode 中从头开始重新创建相同的精确目标类型。 我的意思是,如果您想知道应用程序的正确设置,请从头开始重新创建应用程序,然后检查其设置。
注意:应用程序、框架、静态库和其他事物的默认设置是不同的。此外,Release 与 Debug 的默认值也是不同的。
因为框架是依赖项,而不是最终产品。这通常意味着应用程序需要不同的编译、链接、从另一个依赖项或主应用程序本身剥离设置。
通过调试,目标是:
发布版本的目标是: