首页 文章

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

提问于
浏览
2

按照此处的说明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 F的某个地方,我强行崩溃并在Crashlytics中观察了调用堆栈 . 调用堆栈显示项目F但符号说 (Missing) (参见https://imgur.com/a/HDubV

如果我使用所有dSYM进行存档并手动添加到crashlytics,则会显示Project F中的符号 .

How can I upload the generated dSYMs automatically to Crashlytics? Can I use a 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 中所看到的,dSYM位于同一位置,它们出现在 App.app.dSYM 之前的文件夹中

1 回答

  • 2

    谢谢@MikeBonnell

    找到upload-symbols脚本的文档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 \{\}
    

相关问题