按照此处的说明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 回答
谢谢@MikeBonnell
找到upload-symbols脚本的文档https://docs.fabric.io/apple/crashlytics/missing-dsyms.html
由于我在iOS应用程序中使用(并使用Cocoapods),我更新了我的构建阶段,如下所示