Repository navigation
fix: 校验 iOS bundle 内部路径并修复配置与 JSON 解析 - #108
Merged
Merged
Conversation
- 扫描 .xcodeproj/.xcworkspace 内部符号链接,拒绝读取允许目录外文件 - check_ios 与 protect_ios 共用工程 bundle 路径约束 - compat 配置跳过实际不会使用的 entrypoint 与 Swift Confidential 路径 - 多行 JSON 报告优先整体解析,再回退到逐行事件解析 - 补充内部符号链接、compat 可选路径和完整 iOS 报告回归测试
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.
来源
修复
2026-11-12/MCP第三轮复审/复审报告.md中的 3 项问题。修复内容
P1 工程内部文件符号链接越界
.xcodeproj/.xcworkspacebundle 递归校验:所有内部符号链接 canonicalize 后必须位于--allow-root内.xcworkspace同时校验 CLI 会扫描的同级.xcodeproj(深度 2,跳过 Pods/.git/.build/DerivedData)shellsmith_check_ios与shellsmith_protect_ios共用同一工程路径校验project.pbxproj -> 外部文件在直接检查和保护预检中都被拒绝P2 compat 可选配置被误拒绝
compat不再校验entrypoint和confidential.configbalanced/strict才校验confidential.configentrypoint仅在非dry_run且非compat时校验confidential_enabled()/integrate_runtime的启用语义保持一致P2 多行 iOS 报告被截断
parse_json_output先尝试解析完整 stdout,再回退到逐行 JSON 事件check-ios探针确认 MCP 返回完整对象,包含project_path、schemes、targets、xcode、checks验证
cargo fmt --all --check-D warningscargo test -p shellsmith-mcp:3 个解析单元测试 + 29 个集成测试通过cargo test -p shield-cli:22 passedcargo test -p shield-core:263 passed, 8 ignoredpython3 -m unittest discover -s scripts/tests:48 passedproject.pbxproj外链被protect_ios和check_ios同时拒绝check-ios多行报告保留全部字段未实机验证