如何手动将Flutter的dSYM上传到Firebase Crashlytics?

huangapple go评论75阅读模式
英文:

How to upload flutter dSYM to firebase crashlytics manually?

问题

I have some trace in my Crashlytics dashboard which requires a dSYM to be uploaded for my Flutter app.

我在我的Crashlytics仪表板上有一些跟踪,需要上传dSYM文件以支持我的Flutter应用程序。

I have uploaded manually the output of /build/ios/archive/Runner.xcarchive/dSYMs/ and it works fine.

我已经手动上传了/build/ios/archive/Runner.xcarchive/dSYMs/的输出,它正常工作。

However, only the Flutter UUID is missing :

然而,只有Flutter的UUID丢失:

2  CoreFoundation                 0x1aff94 -[__NSCFString characterAtIndex:].cold.1
3  CoreFoundation                 0x1ac578 -[__NSArrayM insertObject:atIndex:].cold.2
4  CoreFoundation                 0x14188 -[__NSArrayM insertObject:atIndex:]
5  Flutter                        0x35420 (Missing UUID 4c4c44e755553144a19362a9728e600a)
6  Flutter                        0x3dd800 (Missing UUID 4c4c44e755553144a19362a9728e600a)

So after some digging, I have found using a basic python script where was located the 4c4c44e755553144a19362a9728e600a. It is inside : UUID: 4C4C44E7-5555-3144-A193-62A9728E600A (arm64) /Users/foxtom/StudioProjects/MyProject/build/ios/iphoneos/Runner.app/Frameworks/Flutter.framework/Flutter

所以,在进行一些挖掘之后,我使用一个基本的Python脚本找到了4c4c44e755553144a19362a9728e600a的位置。它位于:UUID: 4C4C44E7-5555-3144-A193-62A9728E600A (arm64) /Users/foxtom/StudioProjects/MyProject/build/ios/iphoneos/Runner.app/Frameworks/Flutter.framework/Flutter

Which is a binary file.

这是一个二进制文件。

So my question is, how do I upload the "dSYM" from this binary? Or in other words, how to upload manually the Flutter specific dSYMs files?

那么我的问题是,我如何从这个二进制文件中上传"dSYM"?换句话说,如何手动上传Flutter特定的dSYM文件?

Thanks in advance.

提前感谢。

英文:

I have some trace in my Crashlytics dashboard which requires a dSYM to be uploaded for my Flutter app.

I have uploaded manually the output of /build/ios/archive/Runner.xcarchive/dSYMs/ and it works fine.

However, only the Flutter UUID is missing :

2  CoreFoundation                 0x1aff94 -[__NSCFString characterAtIndex:].cold.1
3  CoreFoundation                 0x1ac578 -[__NSArrayM insertObject:atIndex:].cold.2
4  CoreFoundation                 0x14188 -[__NSArrayM insertObject:atIndex:]
5  Flutter                        0x35420 (Missing UUID 4c4c44e755553144a19362a9728e600a)
6  Flutter                        0x3dd800 (Missing UUID 4c4c44e755553144a19362a9728e600a)

So after some digging, i have found using a basic python script where was located the 4c4c44e755553144a19362a9728e600a. It is inside : UUID: 4C4C44E7-5555-3144-A193-62A9728E600A (arm64) /Users/foxtom/StudioProjects/MyProject/build/ios/iphoneos/Runner.app/Frameworks/Flutter.framework/Flutter

Which is a binary file.

So my question is, how do i upload the "dSYM" from this binary ? Or in other words, how to upload manually the Flutter specific dSYMs files ?

Thanks in advance

答案1

得分: 1

关于Flutter GitHub上的这些问题:

  1. https://github.com/flutter/flutter/issues/128018
  2. https://github.com/flutter/flutter/issues/127489

问题出现在iOS上的Impeller渲染引擎上。尝试按照这些步骤禁用iOS应用程序中的Impeller引擎。

这个问题已经在主分支上解决了,但尚未发布到稳定版或测试版。

英文:

Regarding to these issues on Flutter GitHub:

  1. https://github.com/flutter/flutter/issues/128018
  2. https://github.com/flutter/flutter/issues/127489

The problems stands on Impeller render engine in iOS. Try to go with these steps and disable Impeller engine for iOS app.

This issue was resolved on master branch but was not yet released into stable or beta channel.

答案2

得分: 0

I have understood the problem and i have made a basic python script to help me find it without the terminal command :

if __name__ == 'main':
    rootdir = '/Users/foxtom/StudioProjects/MyProject/build/ios'
    for subdir, dirs, files in os.walk(rootdir):
        for file in files:
            os.system(f"dwarfdump -u {os.path.join(subdir, file)}")

This will actually print all the dSYM files and IDs i need, then you MUST avoid to run flutter clean otherwise it will wipe out your dSYM since they are located in the build folder.

For iOS, you only need to right click on the archive package and show package content, then you will find all the dSYM files, compress the ones you want and upload them to crashlytics.

Now, when i build a release version of my app, i immediately save the archive somewhere else than the build folder of the Flutter project to be able to upload my dSYM later.

英文:

I have understood the problem and i have made a basic python script to help me find it without the terminal command :

if __name__ == '__main__':
    rootdir = '/Users/foxtom/StudioProjects/MyProject/build/ios'
    for subdir, dirs, files in os.walk(rootdir):
        for file in files:
            os.system(f"dwarfdump -u {os.path.join(subdir, file)}")

This will actually print all the dSYM files and IDs i need, then you MUST avoid to run flutter clean otherwise it will wipe out your dSYM since they are located in the build folder.

For iOS, you only need to right click on the archive package and show package content, then you will find all the dSYM files, compress the ones you want and upload them to crashlytics.

Now, when i build a release version of my app, i immediately save the archive somewhere else than the build folder of the Flutter project to be able to upload my dSYM later.

huangapple
  • 本文由 发表于 2023年5月26日 01:26:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/76334881.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定