Skip to content

fix(xcode): 彻底修复项目自引用#97

Merged
iamsyc merged 2 commits into
mainfrom
codex/fix-xcode-project-self-reference
Jul 16, 2026
Merged

fix(xcode): 彻底修复项目自引用#97
iamsyc merged 2 commits into
mainfrom
codex/fix-xcode-project-self-reference

Conversation

@iamsyc

@iamsyc iamsyc commented Jul 16, 2026

Copy link
Copy Markdown
Owner

变更

  • VoidDisplay.xcodeprojApps/VoidDisplay 同步目录迁移到仓库根目录,消除项目包被同步根组再次纳入的结构条件
  • 同步更新 workspace、scheme、test plan、构建脚本、CI、Nightly、Release 与文档路径
  • 为项目位置、自引用、旧路径、Xcode 脚本沙箱和首次发布跨路径比较增加静态守卫与 fixture

原因

原工程包位于 PBXFileSystemSynchronizedRootGroup(path = .) 管理的目录中,Xcode 保存工程时会把工程包本身识别为同步内容并写入项目自引用。工程迁移到同步目录之外后,根组仅同步 Apps/VoidDisplay 的应用内容。

本地验证

  • scripts/ci/static.sh
  • scripts/ci/full_regression.sh --destination "platform=macOS,arch=arm64" --ui-selector "VoidDisplayUITests" --out-dir ".ai-tmp/xcode-project-root-fix/full-regression-final"
  • 611 个 Swift 测试、2 个 Go 包、Debug 构建、11 个 UI 测试、arm64 Release smoke 全部通过
  • Xcode 26.5 两轮 Command-SCommand-Q 后主进程退出,project.pbxproj 哈希保持一致,自引用字段零匹配

- 将 Xcode 工程迁移到仓库根目录,修正同步根组与 SwiftPM 路径
- 更新构建、测试、发布与 CI 路径,兼容首次重命名后的版本比较
- 添加静态守卫与发布路径 fixture,防止自引用和旧路径回归
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

CI Summary

Run: Open

Check Status Details
Change Scope ui_code code=true
ui=true
script=true
product=true
test=true
ci=true
release=true
dependency=true
tooling=false
docs_only=false
unknown=true
Required Gates derived static=true
dependency=true
unit=true
xcode=true
ui=true
release=true
PRs always run static, unit, and xcode build gates.
Dependency Review success required=true
high and critical vulnerabilities block
Static Checks success required=true
actionlint, shellcheck, shfmt, SwiftFormat, SwiftLint, action pinning
Unit Tests success required=true
Swift tests: 611
Go packages: 2
Reason: passed
Artifact: unit-gate
Xcode Build success required=true
Debug build with zero warning scan
Artifact: xcode-build
UI Smoke success required=true
Failure classification is written by ui-smoke-summary.json in each artifact.
Artifacts: ui-smoke-baseline, ui-smoke-listLayout, ui-smoke-listNarrow, ui-smoke-previewRecovery, ui-smoke-previewWindowPayload
Release Smoke success required=true
arm64=success
intel64=skipped
PR release smoke requires arm64 only.
Artifacts: release-smoke-arm64
Release verify summaries are produced by release.yml before publishing.
Artifacts link Open artifacts
CI Gate success single branch protection check

- 将 mise 配置与锁文件加入 Build Relay 输入依赖
- 对齐 Xcode 脚本沙箱与 CI 工具链读取权限
- 精确校验全部 Relay 模块输入以阻止遗漏回归
@iamsyc iamsyc merged commit b28a293 into main Jul 16, 2026
14 checks passed
@iamsyc iamsyc deleted the codex/fix-xcode-project-self-reference branch July 16, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant