12

在我的 Firebase 崩溃报告页面中,我找不到崩溃的完整信息(例如行数、文件等)。我认为可能是因为它说

上传符号文件以符号化 UUID 的未来堆栈跟踪 - - - -***

告诉我

使用命令行,导航到您的 Xcode 项目文件夹并运行以下命令:./Pods/FirebaseCrash/batch -upload - - - -***

不幸的是,当我尝试在我的 Xcode 项目中执行该命令时,我收到以下消息:

- - - -***:警告:没有可执行文件或捆绑包完成。

火力基地没有任何变化。也许是因为启用了位码?我该如何解决?

PS:出于安全原因,我已将我的 UUID 替换为- - - -***。

4

3 回答 3

9

这个答案是如果你不使用 CocoaPods。

如果您不使用 CocoaPods,您将需要 Pods 目录中的一些文件,这些文件未包含在它们提供的标准 Firebase 库集中。

有5个文件,如下图: FirebaseCrash 所需文件

您将需要batch-uploaddump_symsupload-symupload-sym-util.bashupload-sym.sh您可以从 FirebaseCrash Pod 文件中检索这些文件。

如果将它们复制到项目目录中并将其替换为"${PODS_ROOT}"/FirebaseCrash/指向这些文件的目录,它应该可以工作。

注意:如果我使用像 Jenkins 这样的构建服务器,我仍然对这个解决方案感到困惑。那里还有一些工作要做。


我发现这是不使用 CocoaPods 的应用程序所必需的。虽然这可能与您自己的使用没有直接关系,但我认为至少我应该将它包括在内,以供其他人试图找到答案。

于 2016-05-31T11:30:10.627 回答
8

我们目前在第三方共享库(动态框架)方面存在一些问题,所以如果您使用共享库,事情就会变得困难。请按照以下说明操作,但将应用程序可执行文件的路径替换为共享库的路径。

如果不是,则报告崩溃的原始可执行文件可能已丢失。即使使用相同的源重新构建,LC_UUID 字段也会发生变化。

  1. 验证可执行文件的 UUID 是否正确:

    dwarfdump --uuid /path/to/your/build/area/MyApp .app/ MyApp

    如果没有一个 UUID 与丢失的 UUID 匹配,则游戏结束。对不起。您可以尝试从 Time Machine、Carbonite 或其他任何工具恢复可执行文件,仅此而已。

  2. 如果其中一个 UUID 匹配(每个体系结构有一个),那么您仍然拥有原始可执行文件,但您很可能缺少 dSYM 包。您可以验证是否缺少 dSYM:

    mdfind com_apple_xcode_dsym_uuids= UUID

    您应该看不到任何响应。

  3. 重新生成 dSYM 包:

    dsymutil -o=upload.dSYM  /path/to/your/build/area/MyApp .app/ MyApp
  4. 检查 dSYM 包是否已注册:

    mdfind com_apple_xcode_dsym_uuids= UUID

    你应该得到一个回应:upload.dSYM你刚刚创建的。

    如果您没有看到它,请等待几秒钟,然后重试。

  5. 再跑。batch-upload UUID

  6. 如果它仍然不起作用,您可以通过处理可执行文件本身来获得部分结果。运行以获得部分符号。batch-upload /path/to/your/build/area/MyApp.app/MyApp

于 2016-05-31T19:21:23.043 回答
1

在我的情况下(没有 COCOAPODS):

1)从目录“Crash”导入所有文件

在此处输入图像描述



2)像这样将脚本添加到“构建阶段”选项卡中:

# Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file
GOOGLE_APP_ID=1:xxxxxxxxxxxx:ios:xxxxxxxxxxxx

# Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded
"${SRCROOT}"/upload-sym "${SRCROOT}/*NameOfTargetDirectory*/ServiceAccount.json"



您需要在脚本中更改“ NameOfTargetDirectory ”,它可以工作!

于 2017-04-09T09:00:18.757 回答