Skip to content

Simplify building GitX outside of Xcode - #581

Merged
hannesa2 merged 2 commits into
gitx:masterfrom
goneng:add-makefile
Aug 21, 2026
Merged

hannesa2 merged 2 commits into
gitx:masterfrom
goneng:add-makefile

Conversation

@goneng

@goneng goneng commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Give the project one place to run what CI runs, so that a build, a test
run or a local disk image is a single command rather than a remembered
xcodebuild invocation.

  • Name the targets after the BuildPR.yml steps they mirror, so that a
    change on one side is visible from the other
  • Keep dmg runnable without a signing identity, and put the signed,
    hardened-runtime image behind dmg-signed
  • Write Dev.xcconfig from the certificate in the keychain, naming the
    cause when there is none to read
  • Leave the destructive commands out: git-clean-dry-run lists what a
    git clean -Xdf would take, and nothing runs it for you

Test plan:

  • make unit-test passes, 35 tests on arm64
  • make dmg builds an image whose app mounts and launches; with a
    certificate in place make archive produces a hardened-runtime build
    that launches too
  • make Dev.xcconfig reproduces a hand-written config, and its failure
    paths were exercised against generated certificates: none, expired,
    and several teams

@goneng goneng changed the title Wrap the common build and test commands in a Makefile Simplify building GitX outside of Xcode Aug 21, 2026
goneng added 2 commits August 21, 2026 23:26
… Makefile

Give the project one place to run what CI runs, so that a build, a test
run or a local disk image is a single command rather than a remembered
xcodebuild invocation.

- Name the targets after the BuildPR.yml steps they mirror, so that a
  change on one side is visible from the other
- Keep `dmg` unsigned for local use and put signing behind `dmg-signed`,
  which wants an ExportOptions.plist of your own
- Point the README at `make help` alongside the build script shared in
  the discussion thread
Take the guesswork out of preparing a signable local build, so that a
contributor holding a certificate gets the settings that match it, and
one without is told exactly what is missing.

- Read the team and the identity off the certificate itself, as
  `security find-identity` reports nothing for a key that Xcode filed in
  the data protection keychain
- Name the cause on failure: no certificate, an expired one, or several
  teams to choose between
- Hang the target on the file, so a config edited by hand is never
  written over
@goneng
goneng marked this pull request as ready for review August 21, 2026 20:43
@hannesa2
hannesa2 merged commit a1b048a into gitx:master Aug 21, 2026
3 checks passed
@goneng
goneng deleted the add-makefile branch August 22, 2026 00:32
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.

2 participants