React Native项目Xcode构建遇Sandbox文件写入权限错误求助
解决Xcode构建React Native项目时的Sandbox文件写入错误
调整脚本的文件写入路径
.app包是Xcode构建后生成的签名容器,本身处于只读状态,即便关闭脚本沙箱也无法直接写入。你需要把ip.txt的生成路径改成App可读写的目录:- 写入用户文档目录:修改脚本里的路径为
${HOME}/Documents/ip.txt - 如果需要在App内访问该文件,可在React Native中通过
RNFS.DocumentDirectoryPath(需安装react-native-fs依赖)获取正确的可读写路径,再让脚本写入对应位置。
- 写入用户文档目录:修改脚本里的路径为
检查Build Phase脚本的执行时机
如果你的写入脚本在Xcode的Build Phases->Run Script中,确保它在Copy Bundle Resources阶段之前执行。一旦进入资源拷贝和签名阶段,.app包会被锁定为只读,后续写入操作必然失败。清理Xcode缓存并重启
删除当前项目的DerivedData缓存,避免旧缓存引发异常:rm -rf /Users/lxxx/Library/Developer/Xcode/DerivedData/FoodSafety-ftqljiaxksebjgeyvydyogmntxtw之后重启Xcode,重新执行构建。
确认全局沙箱配置
除了User Script Sandboxing,检查项目Signing & Capabilities中的App Sandbox是否处于关闭状态。若全局沙箱开启,即便脚本沙箱关闭,仍可能限制文件写入操作。
内容的提问来源于stack exchange,提问作者Swars
相关产品推荐
相关产品推荐

