升级Sonoma+更换外置硬盘后Xcode编译Pods写入权限错误
问题分析与解决建议
问题背景
刚从Monterey升级到Sonoma系统,同时将内置HDD格式化后更换为外置硬盘,编译闲置一年的项目时触发文件写入权限错误,错误来自[CP] Embed Pods Framework脚本,具体报错:
error: Sandbox: rsync.samba(17825) deny(1) file-write-create /Users/danieldonaldson/Library/Developer/Xcode/DerivedData/TestComposer-fkrrttghacwdgdgvsgqetjnfbbxl/Build/Products/Debug-iphoneos/TestComposer.app/Frameworks/SwiftSVG.framework/.Info.plist.uRrjb7 (in target 'TestComposer' from project 'TestComposer')
已尝试操作:
- 删除Derived Data,无效果
- 将SwiftSVG Pod从2.0升级到2.3.0,问题未解决
补充信息:提交Git未变更文件后,出现新的权限错误,日志如下:
mkdir -p /Users/danieldonaldson/Library/Developer/Xcode/DerivedData/TestComposer-fkrrttghacwdgdgvsgqetjnfbbxl/Build/Products/Debug-iphonesimulator/TestComposer.app/Frameworks rsync --delete -av --filter P .*.?????? --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "/Users/danieldonaldson/Library/Developer/Xcode/DerivedData/TestComposer-fkrrttghacwdgdgvsgqetjnfbbxl/Build/Products/Debug-iphonesimulator/SwiftSVG/SwiftSVG.framework" "/Users/danieldonaldson/Library/Developer/Xcode/DerivedData/TestComposer-fkrrttghacwdgdgvsgqetjnfbbxl/Build/Products/Debug-iphonesimulator/TestComposer.app/Frameworks" building file list ... done SwiftSVG.framework/Info.plist SwiftSVG.framework/SwiftSVG SwiftSVG.framework/_CodeSignature/ rsync: recv_generator: mkdir "/Users/danieldonaldson/Library/Developer/Xcode/DerivedData/TestComposer-fkrrttghacwdgdgvsgqetjnfbbxl/Build/Products/Debug-iphonesimulator/TestComposer.app/Frameworks/SwiftSVG.framework/_CodeSignature" failed: Operation not permitted (1) *** Skipping everything below this failed directory *** rsync: mkstemp "/Users/danieldonaldson/Library/Developer/Xcode/DerivedData/TestComposer-fkrrttghacwdgdgvsgqetjnfbbxl/Build/Products/Debug-iphonesimulator/TestComposer.app/Frameworks/SwiftSVG.framework/.Info.plist.eKMDsg" failed: Operation not permitted (1) rsync: mkstemp "/Users/danieldonaldson/Library/Developer/Xcode/DerivedData/TestComposer-fkrrttghacwdgdgvsgqetjnfbbxl/Build/Products/Debug-iphonesimulator/TestComposer.app/Frameworks/SwiftSVG.framework/.SwiftSVG.H5hgfW" failed: Operation not permitted (1) sent 826770 bytes received 70 bytes 1653680.00 bytes/sec total size is 830166 speedup is 1.00 rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/98ed8ad3-3356-11ee-9b53-aead88ae2785/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
问题定位
- 核心原因:错误并非Pod源码问题,而是Sonoma系统沙箱限制+外置硬盘权限配置不当导致rsync进程无法写入文件。Sonoma的隐私沙箱机制比Monterey更严格,外置硬盘的权限设置或隐私保护规则阻止了Xcode的rsync进程访问Derived Data目录。
- 错误指向:
[CP] Embed Pods Framework脚本负责将编译完成的Pod框架复制到App的Frameworks目录,rsync是该过程的执行工具,系统沙箱拒绝了它的写入权限。
解决步骤
- 给Xcode添加全盘访问权限:
- 打开「系统设置」→「隐私与安全性」→「全盘访问」
- 点击加号,添加Applications目录下的Xcode到列表
- 重启Xcode后重新编译
- 检查外置硬盘权限:
- 右键外置硬盘图标→「显示简介」
- 在「共享与权限」中,确保当前用户拥有「读与写」权限,勾选「应用到包含的项目」
- 重置Xcode权限数据库:
打开终端执行:
重启Mac后重新打开Xcodetccutil reset All com.apple.dt.Xcode - 清理并重建Pod依赖:
终端进入项目目录,依次执行:
打开项目重新编译pod deintegrate pod clean pod install
内容的提问来源于stack exchange,提问作者Dan Donaldson
相关产品推荐
相关产品推荐

