Xcode build tuner
Apply approved Xcode build optimization changes and re-benchmark. Use after `xcode-build-strategist` approval, or for explicit build-setting, script-phase, Swift compilation, or SwiftPM graph fixes.From its SKILL.md
npx -y skills add Xopoko/build-swift-apps --skill xcode-build-tunerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.6 KB, 741 tokens by cl100k_base, as published. Nobody here has run it
Xcode Build Tuner
Implement only approved build optimization changes, verify compilation, and prove the result with the same benchmark contract.
Rules
- Require either checked items in
.build-benchmark/optimization-plan.mdor an explicit user instruction. - Apply one logical fix at a time; keep edits reviewable and reversible.
- Re-benchmark after changes and report wall-clock deltas.
- If a speculative change regresses or shows no useful benefit, flag it and recommend revert when appropriate.
- Do not revert recommended build settings only because one noisy benchmark failed to improve.
Fix Types
- Build settings:
DEBUG_INFORMATION_FORMAT=dwarffor Debug,SWIFT_COMPILATION_MODE=singlefile,COMPILATION_CACHE_ENABLE_CACHING=YES,EAGER_LINKING=YES,SWIFT_USE_INTEGRATED_DRIVER=YES,ONLY_ACTIVE_ARCH=YES, and cross-target setting alignment. Verify withxcodebuild -showBuildSettings. - Script phases: declare inputs/outputs, add configuration guards, move long lists to
.xcfilelist, and enable dependency analysis when possible. - Source compilation: add types, break generic/chained expressions, mark non-subclassed classes
final, tighten access control, extract huge SwiftUI builders, and add explicit closure return types. Readreferences/fix-patterns.mdfor examples. - SwiftPM graph: split oversized modules, remove upward/circular dependencies, extract interface modules, remove unnecessary
@_exported import, align options, and pin branch dependencies to tags or revisions. Confirm tags withgit ls-remote --tags; verify withxcodebuild -resolvePackageDependencies.
Workflow
- Read the approved plan or user instruction.
- Identify exact files/settings for each approved item.
- Apply the change.
- Run a quick build to catch compiler/linker errors.
- Re-run the original baseline command, usually:
python3 ../../shared/build-optimization/scripts/benchmark_builds.py \ --project App.xcodeproj --scheme MyApp --configuration Debug \ --destination "platform=iOS Simulator,name=<latest available iPhone simulator>,OS=latest" \ --output-dir .build-benchmark - Compare clean, cached clean when present, and incremental medians.
Regression Policy
- Evaluate wall-clock time first; cumulative task time is supporting evidence.
- A slower standard clean build can still be acceptable when cached clean or incremental builds improve.
- Keep best-practice settings even without immediate measurable improvement; they align with current Xcode direction and may compound later.
- For speculative source/script/graph changes, recommend revert if all measured build types regress or if there is no median/cached/incremental benefit.
- Distinguish "outlier reduction only" from true median improvement.
Report
Lead with plain wall-clock impact:
Clean build: X.Xs (was Y.Ys) - Z.Zs faster/slower.
Incremental build: X.Xs (was Y.Ys) - Z.Zs faster/slower.
Then include files changed, status per fix (Kept, Kept (best practice), Reverted, Blocked, No improvement), confidence/noise notes, and any deviation from the approved plan. If task work decreased but wall-clock did not, say that parallel Xcode work hid the improvement.
References
references/fix-patterns.md../../shared/build-optimization/references/build-settings-best-practices.md../../shared/build-optimization/references/recommendation-format.md
What ships with it: 1 file
5.9 KB alongside SKILL.md
references/
- fix-patterns.md5.9 KB