我在我的 iOS 应用程序中使用 Bitrise 作为 CI/CD。
在工作流程中,有一个步骤是通过 Fabric 发布应用程序。
当崩溃发生时,我在仪表板中看到的唯一想法是堆栈上的许多 __hidden 步骤。
我猜这是因为缺少一些符号,但 Fabric 并没有说缺少任何符号。我尝试以任何方式手动添加它们,但我仍然看到 __hidden 崩溃。
关于如何解决此问题的任何想法?
这是我得到的一个例子。
Best Answer-推荐答案 strong>
查看 Apple 的 document描述隐藏的符号。查找“将‘隐藏’符号名称翻译回其原始名称”部分。
这里的问题不在于 Crashlytics 缺少符号信息。他们拥有的符号信息从字面上告诉他们您的符号被命名为 __hidden#xyz 。这导致您在此处看到的混淆。正如 Apple 文档所述,可以对这些符号进行去混淆处理,但我不确定 Crashlytics 是否支持这一点。他们有一点信息here .
我的理解是,当您在应用提交过程中选择不与 Apple 共享符号信息时会发生这种情况。如果我是对的,一旦你这样做了,在你发布你的应用的新版本之前是不可能改变的。
更新:
我在 dsymutil 中发现了一个选项,可以在这种情况下对 dSYM 进行反混淆。
--symbol-map=*bcsymbolmap*
这将使用去混淆符号修改 dSYM。将该 dSYM 上传到 Crashlytics 应该会产生预期的符号化。但是,由于缓存的原因,您可能需要先与他们联系以确保此更改生效。
关于ios - _hidden 在 Crashlytics 上使用 Bitrise - iOS 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/54969345/
|