Fabric 自动上传缺失的 dSYM
Posted
技术标签:
【中文标题】Fabric 自动上传缺失的 dSYM【英文标题】:Fabric automatically upload missing dSYMs 【发布时间】:2016-05-12 17:20:38 【问题描述】:http://prntscr.com/b388sf
在 ios9 之后我经常遇到这个问题并且对此感到厌烦。我正在使用启用了位码的最新 Xcode/Fabric/Swift。我必须从 itunesconnect 手动下载 dSYM 并将其上传到 fabric 以使其工作。
我做错了什么,我怎样才能让它像预期的那样自动工作?
【问题讨论】:
【参考方案1】:来自 Fabric 的 Mike。
使用 Bitcode 肯定会使这个问题更频繁地发生,但是有几种方法可以处理它。您可以通过运行fastlane refresh_dsyms
使用Fastlane.tools 自动下载dSYM,这将从iTunesConnect 下载dSYM,然后将它们上传到Fabric。 Fastlane 的refresh_dsyms
参考在这里:https://krausefx.com/blog/download-dsym-symbolication-files-from-itunes-connect-for-bitcode-ios-apps
在实践中,创建一个名为:refresh_dsyms
的快速通道,使用以下内容:
lane :refresh_dsyms do
download_dsyms # Download dSYM files from iTC
upload_symbols_to_crashlytics # Upload them to Crashlytics
clean_build_artifacts # Delete the local dSYM files
end
这将从 iTunesConnect 下载 dSYM 并将它们上传到 Fabric。
或者,您可以运行 Fabric upload_symbols
脚本,但您需要从 iTunesConnect 手动下载 dSYM - 这只会处理上传。命令将是:find <directory-to-search-for-dsyms> -name "*.dSYM" | xargs -I \\ /path/to/upload-symbols -a <api-key> -p <platform> \\
upload_symbols 的参考在这里:https://docs.fabric.io/ios/crashlytics/missing-dsyms.html#upload-symbols-script 和
由于发生这种情况,Apple 会在启用 Bitcode 时重新编译您的应用程序,因此 dSYM 仅在 Apple 的服务器上生成,这会阻止 Fabric 自动上传它们。
【讨论】:
所以只禁用位码就可以轻松解决这个问题? 这就是我们所发现的。有一些边缘情况,但 Apple 正在他们的服务器上重新编译您的应用程序,创建新的 dSYM,因此我们无法捕获这些 dSYM。 @MikeBonnell 当我使用这个解决方案时,它根据我们的 CI 工作正常并且所有内容都已上传。 (它是一个每周运行一次的 cron 作业)但它现在运行了几个星期并且没有结果。 Fabric 似乎没有处理 dsym。 Hey Reshad - 请发送电子邮件至 support(at)fabric(dot)io 并附上您应用的 dSYM 和 bundle id,以便我们进一步调查。 @MikeBonnell 你能澄清一下吗?我们应该在crashlytics
操作之后调用upload_symbols_to_crashlytics
吗?还是 dSYM 已经在上传构建?以上是关于Fabric 自动上传缺失的 dSYM的主要内容,如果未能解决你的问题,请参考以下文章
使用 Firebase/Crashlytics 更改 Fabric 和 Crashlytics pod 以上传缺少的必需 dSYM
Firebase crashlytics 自动上传 dsym
上传 1 个缺失的 DSYM 以处理 Firebase 崩溃报告中的 18 次崩溃