Follow-up to #1028.
#1028 unblocked external-contributor builds, but the personal-team setup still requires editing TablePro.xcodeproj/project.pbxproj in Xcode (Team, Bundle Identifier, Code Signing Entitlements) and then telling git to ignore those edits via git update-index --skip-worktree.
That works but is fragile:
--skip-worktree is per-clone, easy to forget on a fresh checkout.
- Any future Xcode UI tweak by a contributor risks accidentally committing their team prefix back.
- It's not the Apple-recommended pattern.
Proposal
Move the three overridable values into a gitignored xcconfig file. The repo already uses Secrets.xcconfig (CONTRIBUTING.md:12) for similar purposes, so the infrastructure is in place.
Roughly:
- Add
Local.xcconfig to .gitignore (with a committed Local.xcconfig.example).
- In
TablePro.xcodeproj, set the Debug build settings for DEVELOPMENT_TEAM, PRODUCT_BUNDLE_IDENTIFIER, and CODE_SIGN_ENTITLEMENTS to read from the xcconfig (\$(inherited) chain).
- Default values stay set to the official team /
com.TablePro / TablePro/TablePro.entitlements so unmodified clones keep working.
- Replace the personal-team section in
CONTRIBUTING.md with a 3-line block: copy the example, set DEVELOPMENT_TEAM, set PRODUCT_BUNDLE_IDENTIFIER, optionally set CODE_SIGN_ENTITLEMENTS=TablePro/TablePro.Debug.entitlements.
Outcome
- No more pbxproj edits for personal-team contributors.
git status stays clean by construction; no --skip-worktree needed.
- Official Release builds are unchanged (xcconfig is empty / absent → defaults apply).
Follow-up to #1028.
#1028 unblocked external-contributor builds, but the personal-team setup still requires editing
TablePro.xcodeproj/project.pbxprojin Xcode (Team, Bundle Identifier, Code Signing Entitlements) and then telling git to ignore those edits viagit update-index --skip-worktree.That works but is fragile:
--skip-worktreeis per-clone, easy to forget on a fresh checkout.Proposal
Move the three overridable values into a gitignored
xcconfigfile. The repo already usesSecrets.xcconfig(CONTRIBUTING.md:12) for similar purposes, so the infrastructure is in place.Roughly:
Local.xcconfigto.gitignore(with a committedLocal.xcconfig.example).TablePro.xcodeproj, set the Debug build settings forDEVELOPMENT_TEAM,PRODUCT_BUNDLE_IDENTIFIER, andCODE_SIGN_ENTITLEMENTSto read from the xcconfig (\$(inherited)chain).com.TablePro/TablePro/TablePro.entitlementsso unmodified clones keep working.CONTRIBUTING.mdwith a 3-line block: copy the example, setDEVELOPMENT_TEAM, setPRODUCT_BUNDLE_IDENTIFIER, optionally setCODE_SIGN_ENTITLEMENTS=TablePro/TablePro.Debug.entitlements.Outcome
git statusstays clean by construction; no--skip-worktreeneeded.