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

时间:2018-03-16 07:50:01

标签: ios xcode crashlytics carthage dsym

按照此处documentation的说明进行操作 自动将dSYM文件上传到结构,您只需在应用目标上运行Project F - product is Dynamic Framework Project A - product is .app - depends_on: - Project F - X.framework from Carthage 脚本。

我的项目配置如下:

Fabric.framework/run

在项目A的目标上,我已经添加了作为构建阶段来运行(Missing)脚本。 在Project F的某个地方,我强行崩溃并在Crashlytics中观察了调用堆栈。调用堆栈显示项目F,但符号表示ENABLE_BITCODE = NO Output Product Directory - Debug-iphoneos - App.app - Frameworks - ProjectF.framework - X.framework - App.app.dSYM - ProjectF.framework.dSYM - X.framework.dSYM (请参阅https://docs.fabric.io/apple/crashlytics/advanced-setup.html

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

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

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

Output Product Directory
  

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

正如您在上面App.app.dSYM中看到的那样,dSYM位于同一位置,它们出现在+TIME(0,1,0)之前的文件夹中

1 个答案:

答案 0 :(得分: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 \{\}