我在 Flutter 应用程序中遇到 Firebase Crashlytics 问题,其中 dSYM 文件已成功上传,但 UUID 在 Firebase 控制台上不匹配。
如附图所示,尽管 dSYM 已上传,但某些 UUID 显示为“缺失(必需)”。
此外,我已将脚本设置为仅在安装构建时运行,并且确保该脚本是我的构建阶段中最后运行的脚本。
环境详情:
构建命令:
flutter build ipa --flavor production --dart-define=ENVIRONMENT=prod
上传脚本
# Upload dSYM files to Firebase Crashlytics
echo "Attempting to upload dSYM to Firebase Crashlytics..."
upload_output=$($PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai "$APP_ID" 2>&1)
upload_exit_code=$?
echo "Upload output: $upload_output"
上传似乎成功,但 Firebase 似乎未正确匹配 UUID。有谁遇到过这个问题或者对如何解决 UUID 不匹配有任何见解吗?
我用
确认uuiddwarfdump --uuid myApp_production.app.dSYM yet Crashlytis seems to expect a different uuid
这就是答案吗?
自从我设置了“仅安装构建”标志以来,我一直在我的开发机器上的模拟器和设备上运行。 Firebase 认为这是来自真实设备的崩溃。
通过将脚本限制为“仅安装版本”,您可以在开发版本期间阻止 dSYM 上传。这意味着当您的开发计算机上发生崩溃时,Firebase 会看到崩溃报告,但没有匹配的 dSYM 文件来表示它,因为它从未上传。
Firebase Crashlytics 平等对待所有崩溃报告,无论它们来自开发环境还是生产环境。因此,如果您的本地计算机发生崩溃,它仍会尝试查找匹配的 dSYM 文件。由于您的脚本没有上传用于开发版本的 dSYM,Firebase 无法匹配 UUID,并且会将它们显示为“缺失(必需)”。
可能的解决方案:上传所有版本的 dSYM(不仅仅是安装版本):