通过Fabric Mac应用集成Crashlytics时构建报错:找不到uploadDSYM文件
uploadDSYM缺失的构建错误 嘿,这个问题我之前帮不少开发者解决过,本质就是Fabric的脚本找不到uploadDSYM工具,咱们一步步来排查修复:
重新确认Fabric.framework的完整性
先把项目里现有的Fabric.framework彻底删掉,从官方渠道重新下载完整的框架包(别只复制部分文件哦)。拖入项目时,一定要勾选Copy items if needed,同时确保你的目标项目Target已经被选中,让Xcode正确关联所有文件路径。检查Build Phases里的Run Script配置
打开Xcode的项目设置,进入对应Target的Build Phases标签,找到你添加的Fabric Run Script:- 如果是用CocoaPods集成的,脚本应该是这样的(替换成你的密钥):
"${PODS_ROOT}/Fabric/run" YOUR_API_KEY YOUR_BUILD_SECRET - 如果是手动集成,脚本路径要换成项目内的相对路径,比如:
"${PROJECT_DIR}/Fabric.framework/run" YOUR_API_KEY YOUR_BUILD_SECRET
划重点:别用报错里那种硬编码的绝对路径(比如
/Users/Desktop/DemoCodeApp/),相对路径更不容易出问题,而且要确保路径和你实际Fabric.framework的位置完全匹配。- 如果是用CocoaPods集成的,脚本应该是这样的(替换成你的密钥):
验证
uploadDSYM文件的存在与权限
右键项目里的Fabric.framework选择Show in Finder,打开framework包内部看看有没有uploadDSYM文件:- 如果没有,说明你下载的框架包不完整,赶紧重新下载完整包;
- 如果有这个文件,右键它选择
Get Info,在Sharing & Permissions里检查当前用户有没有Read & Write权限,没有的话调整权限。
清理项目后重新构建
先执行Product > Clean Build Folder(快捷键Shift+Cmd+K)清理构建缓存,然后关闭Xcode,找到项目的Derived Data文件夹(通过Xcode > Preferences > Locations可以查看路径),直接删除整个文件夹。最后重新打开项目,执行Product > Build试试。
额外小提示:如果是CocoaPods集成的情况,可以先运行pod deintegrate彻底移除依赖,再执行pod install重新安装,有时候pod的缓存会导致文件缺失。另外也要确保你的Xcode版本和Fabric/Crashlytics的版本是兼容的,别用太老的Xcode搭配最新的框架。
内容的提问来源于stack exchange,提问作者Aditi Tiwari

