Xcode验证应用时FirebaseAnalytics dSYM文件缺失,如何解决?
手动定位并上传目标dSYM
用mdfind "com_apple_xcode_dsym_uuids = D080D817-CA37-3B97-8A51-421A372C12DB"命令在本地全局搜索对应UUID的dSYM文件——SPM安装的框架dSYM可能不在归档包的dSYMs文件夹内,而是存放在DerivedData或SPM缓存目录中。找到文件后,直接通过Firebase控制台的Crashlytics模块手动上传。检查SPM框架的构建配置
进入Xcode的Package Dependencies,找到FirebaseAnalytics包,右键选择Show Build Settings,确认其Release和Debug配置下的Debug Information Format均设为DWARF with dSYM File。若配置异常,尝试重新添加Firebase SPM依赖或指定版本重新解析。修改Run Script脚本,强制指定框架dSYM路径
在Crashlytics的run脚本中添加参数,明确指定FirebaseAnalytics的dSYM路径,示例如下:"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run" -upload-symbols -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${BUILD_DIR%/Build/*}/SourcePackages/artifacts/firebase-ios-sdk/FirebaseAnalytics/FirebaseAnalytics.framework.dSYM"注意替换为实际的dSYM文件路径,可通过查看SPM的artifacts目录确认位置。
调整归档的dSYM导出设置
归档完成后选择Export App流程,在Options中确认Include dSYMs已勾选,且选择All dSYMs选项(而非仅应用自身的dSYMs),导出后检查dSYMs文件夹是否包含Firebase相关文件。临时禁用Analytics符号上传
若暂时不需要Analytics的符号解析,可在Run脚本中添加-disable-analytics-upload参数跳过相关上传,脚本示例:"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run" -disable-analytics-upload重置Xcode缓存
删除DerivedData目录:rm -rf ~/Library/Developer/Xcode/DerivedData
清除SPM缓存:rm -rf ~/Library/Caches/org.swift.swiftpm
重新打开Xcode,更新SPM依赖后重新归档。
内容的提问来源于stack exchange,提问作者Jim

