3

按照这里的说明https://docs.fabric.io/apple/crashlytics/advanced-setup.html为了自动将 dSYM 文件上传到结构,您只需Fabric.framework/run在应用程序目标上运行脚本。

我的项目配置如下:

Project F
- product is Dynamic Framework

Project A
- product is .app
- depends_on:
    - Project F
    - X.framework from Carthage

在项目 A 的目标上,作为构建阶段,我添加了运行Fabric.framework/run脚本。Project FI 中的某个地方强制崩溃并观察了 Crashlytics 中的调用堆栈。调用堆栈显示 Project F 但符号显示(Missing)(请参阅https://imgur.com/a/HDubV

如果我将所有 dSYM 存档并手动添加到 crashlytics,则会显示来自项目 F 的符号。

如何将生成的 dSYM 自动上传到 Crashlytics?我可以使用restful api吗?

注意:我假设使用 Carthage 导入的动态框架也会发生相同的行为。

ENABLE_BITCODE = NO

Output Product Directory
- Debug-iphoneos
    - App.app
        - Frameworks
            - ProjectF.framework
            - X.framework
    - App.app.dSYM
    - ProjectF.framework.dSYM
    - X.framework.dSYM

如果您链接到其他静态或动态框架,您可能会看到缺少行号或文件信息的崩溃报告。此信息来自您的 dSYM 文件,因此请确保框架的 dSYM 文件与应用程序的 dSYM 放在同一目录中,并且它们是在您的 .app 之前构建的。- Crashlytics 静态或动态框架

正如你在Output Product Directory上面看到的,dSYMs 在同一个地方,它们出现在之前的文件夹中App.app.dSYM

4

1 回答 1

3

谢谢@MikeBonnell

找到上传符号脚本的文档https://docs.fabric.io/apple/crashlytics/missing-dsyms.html

由于我在 iOS 应用程序中使用(并使用 Cocoapods)我更新了我的构建阶段如下

find ${DWARF_DSYM_FOLDER_PATH} -name "*.dSYM" | xargs -I \{\} ${PODS_ROOT}/Fabric/upload-symbols -a <api-key> -p ios \{\}
于 2018-03-16T18:02:36.663 回答