Crashlytics如何从Carthage框架上传dsym文件

3

为了自动上传dSYM文件到Fabric,请按照此处的指示https://docs.fabric.io/apple/crashlytics/advanced-setup.html,只需在应用程序目标上运行Fabric.framework/run脚本即可。

我的项目配置如下:

Project F
- product is Dynamic Framework

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

在Project A的目标中,我已经添加了一个构建阶段来运行脚本。在Project F的某个地方,我强制崩溃并观察Crashlytics中的调用堆栈。调用堆栈显示Project F,但符号为(Missing)(见https://imgur.com/a/HDubV)。
如果我使用所有dSYM进行归档并手动添加到Crashlytics中,则会显示来自Project 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 Static or Dynamic Frameworks 正如您在上面的输出产品目录中所看到的,dSYMs位于同一位置,并且它们出现在App.app.dSYM之前的文件夹中。

1
这里是 Fabric 的 Mike。尝试切换到使用 upload-symbols 脚本,它将包含更多有关上传成功或失败的输出信息:/Applications/Fabric.app/Contents/MacOS/upload-symbols -a <api-key> -p ios /Users/YourUserName/PathToDsymLocation - Mike Bonnell
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 \{\}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接