Crashlytics 如何从 Carthage 框架上传 dsym 文件
Crashlytics how to upload dsym files from Carthage frameworks
按照此处的说明进行操作 https://docs.fabric.io/apple/crashlytics/advanced-setup.html 以便
自动将 dSYM 文件上传到 fabric,您只需 运行 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,则会显示项目 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
If you link in other static or dynamic frameworks, you could see crash reports with missing line numbers or file information. This information comes from your dSYM files, so ensure that your dSYM files for the frameworks are placed in the same directory as the app’s dSYM and that they are built before your .app. - Crashlytics Static or Dynamic Frameworks
如上文Output Product Directory
所示,dSYM在同一个地方,出现在App.app.dSYM
之前的文件夹中
感谢@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 \{\}
按照此处的说明进行操作 https://docs.fabric.io/apple/crashlytics/advanced-setup.html 以便
自动将 dSYM 文件上传到 fabric,您只需 运行 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,则会显示项目 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
If you link in other static or dynamic frameworks, you could see crash reports with missing line numbers or file information. This information comes from your dSYM files, so ensure that your dSYM files for the frameworks are placed in the same directory as the app’s dSYM and that they are built before your .app. - Crashlytics Static or Dynamic Frameworks
如上文Output Product Directory
所示,dSYM在同一个地方,出现在App.app.dSYM
感谢@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 \{\}