4

我在我的 iOS 应用程序上使用 Bitrise 作为 CI/CD。在工作流程中,有一个步骤是通过 Fabric 发布应用程序。当发生崩溃时,我在仪表板中看到的唯一想法是__hidden堆栈上的许多步骤。我猜这是因为缺少一些符号,但 Fabric 并没有说缺少任何符号。我尝试以任何方式手动添加它们,但我仍然看到__hidden崩溃。关于如何解决此问题的任何想法?

这是我得到的一个例子。 织物原木

4

1 回答 1

2

查看 Apple描述隐藏符号的文档。查找“将‘隐藏’符号名称翻译回其原始名称”部分。

这里的问题不在于 Crashlytics 缺少符号信息。他们拥有的符号信息从字面上告诉他们您的符号被命名为__hidden#xyz. 这导致您在此处看到的混淆。正如 Apple 文档所述,可以对这些符号进行去混淆处理,但我不确定 Crashlytics 是否支持这一点。他们在这里有一些信息。

我的理解是,当您在应用程序提交过程中选择不与 Apple 共享符号信息时,就会发生这种情况。如果我是对的,一旦你这样做了,在你发布你的应用程序的新版本之前是不可能改变的。

更新:

我发现了一个选项dsymutil,可以在这种情况下对 dSYM 进行去混淆处理。

--symbol-map=*bcsymbolmap*

这将使用去混淆符号修改 dSYM。将该 dSYM 上传到 Crashlytics 应该会产生预期的符号化。但是,由于缓存,您可能需要先与他们联系以确保此更改生效。

于 2019-03-10T17:45:08.073 回答