复制React Native项目文件夹后归档失败,仍指向旧路径
这种直接复制项目文件夹的坑我刚学RN的时候也踩过!别慌,咱们一步步把残留的旧路径清掉:
检查并修复Xcode的Bundle脚本
打开你的Xcode项目,进入Build Phases标签页,找到那个报错的Bundle React Native code and images自定义脚本。看里面的内容,大概率是硬编码了旧文件夹的路径,比如调用react-native-xcode.sh的路径或者NODE_BINARY的路径。
把绝对路径改成相对路径就好,比如如果你的ios文件夹在项目根目录下,脚本里的路径应该写成../node_modules/react-native/scripts/react-native-xcode.sh,这样不管项目在哪,都能正确找到脚本。彻底清理Xcode缓存
先按Command + Shift + K清理当前项目的构建文件夹,然后手动去~/Library/Developer/Xcode/DerivedData目录,找到和你项目同名的文件夹删掉——这里的缓存经常会残留旧路径信息,必须清干净。重置React Native的Metro缓存
回到项目根目录,在终端运行:npm start -- --reset-cache # 如果你用yarn的话就跑这个 yarn start --reset-cache这个操作会清空Metro打包器的缓存,避免它还记着旧项目的路径。
重新安装依赖
删掉项目根目录下的node_modules文件夹,还有package-lock.json(或yarn.lock),然后重新运行npm install或yarn install。有时候node_modules里的某些依赖会硬编码安装时的路径,重新装就能解决这个问题。最后再试一次归档
做完上面这些步骤,重启Xcode,重新构建项目,再尝试Product => Archive,应该就能正常通过了。
以后记得别直接复制整个项目文件夹啦,用Git克隆或者导出Xcode归档的方式更稳妥,省得踩这种路径坑😂
内容的提问来源于stack exchange,提问作者krewllobster

