Xcode 9生成优化配置文件后报错:无法读取React.profdata文件
我之前也碰到过类似的Xcode构建报错情况,针对你遇到的Could not read profile /Users/louis/project/Scavenger/node_modules/react-native/React/OptimizationProfiles/React.profdata: No such file or directory错误,除了你已经尝试的清理项目和删除DerivedData,这里还有几个可以尝试的解决思路:
手动触发profiling构建生成文件:报错的核心是目标文件不存在,可能是自动生成步骤没执行成功。你可以在Xcode里选择
Product > Build For > Profiling,完成这个构建后再去指定路径检查React.profdata是否生成;或者在终端进入项目根目录,执行react-native run-ios --configuration Release(根据你的实际构建配置调整),强制触发profiling相关的文件生成。校验构建设置中的路径配置:进入Xcode的「Apple LLVM - Code Generation」构建设置,找到和
Optimization Profile相关的选项,检查路径是否正确。建议使用Xcode内置变量代替硬编码路径,比如把路径改成$(SRCROOT)/node_modules/react-native/React/OptimizationProfiles/React.profdata,避免因项目位置变动导致路径失效。重新安装React Native依赖:有可能是
node_modules里的React Native包损坏或缺失了该文件。你可以先删除项目根目录下的node_modules文件夹,然后执行npm install或yarn install重新安装依赖,之后再清理项目重新构建。检查版本兼容性:Xcode 9属于比较老旧的版本,可能和你当前使用的React Native版本存在兼容性冲突。你可以查看React Native官方文档确认对应版本的Xcode支持要求,如果确实存在兼容问题,要么降级React Native到适配Xcode 9的版本,要么在系统允许的前提下升级Xcode版本。
临时 workaround:手动创建空文件:如果上面的方法都暂时无法解决,你可以尝试在报错的路径
/Users/louis/project/Scavenger/node_modules/react-native/React/OptimizationProfiles/下手动创建一个空的React.profdata文件,先绕过这个错误让构建继续,后续再排查根本原因。
内容的提问来源于stack exchange,提问作者Louis Kurniawan

