Repository navigation
fix: 拒绝非普通 iOS 预检文件并避免读取阻塞 - #113
Merged
Merged
Conversation
added 4 commits
November 13, 2026 13:45
- CocoaPods 判定读取 project.pbxproj 前校验目标是普通文件 - iOS 配置与保护报告读取前同样校验普通文件,避免 FIFO 等阻塞 - 保留缺失文件原有行为,不引入额外误拦截 - 增加父工程 pbx、配置和报告 FIFO 回归测试
- Podfile.lock 和 Pods/Manifest.lock 在解析路径后要求普通文件 - bundle 扫描对 project.pbxproj/contents.xcworkspacedata 检查普通文件类型 - 覆盖 workspace 发现的子工程 pbx 及其链接目标 - 增加锁文件与子工程 FIFO 阻塞回归测试
- bundle 扫描直接按 CLI 打开的小写路径检查 project.pbxproj/contents.xcworkspacedata - 大小写不敏感文件系统上大写目录项会被同一路径命中并校验普通文件类型 - 增加大写 FIFO pbx 回归测试,普通同名文件恢复后通过
- 必需文件按 CLI 打开路径使用 symlink_metadata 检查 - 大小写不敏感文件系统可命中大写目录项 - 失效的必需文件链接明确报错,非必需失效链接继续忽略
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
来源
修复第七轮复审补充问题:iOS 预检在读取
project.pbxproj前只校验路径范围,没有校验目标类型;把文件替换为命名管道后,读取会阻塞,检查和保护预检都可能卡住且无法拿到取消任务 ID。修复内容
validate_ios_cocoapods_paths在读取用于判断 CocoaPods 的project.pbxproj前:--allow-rootHost.xcodeproj/project.xcworkspace的父工程 pbxshellsmith_read_report读取前要求普通文件验证
cargo fmt --all --check-D warningscargo test -p shellsmith-mcp:3 个单元测试 + 41 个集成测试通过cargo test -p shield-cli:22 passedcargo test -p shield-core:263 passed, 8 ignoredpython3 -m unittest discover -s scripts/tests:48 passedproject.pbxproj为命名管道时,check_ios约 0.3 秒返回“不是普通文件”,不再阻塞protect_iosdry-run 在创建任务前返回同样错误合并说明
按仓库维护者要求,本 PR 只提交,不自动合并到
main,等待后续统一合并。未实机验证