Repository navigation
Fix the gitx tool being unable to load the app frameworks - #595
Merged
Merged
Conversation
Let the two helper tools take the code-signing identity from the xcconfig like every other target, so that a build made with a development certificate signs them with the same team the app is signed with. Both targets pinned an ad-hoc identity in their own build settings, which beats the project xcconfig, so the app and its frameworks were signed with the developer team while the tools were not. The hardened runtime refuses to map a team-signed library into a process carrying no team, leaving `gitx` aborting on ObjectiveGit before it starts. - Drop CODE_SIGN_IDENTITY from the cli tool target, Debug and Release - Drop it from gitx_askpasswd, which pins the same value - Leave GitX.xcconfig to supply the ad-hoc identity when no development certificate is configured
goneng
force-pushed
the
fix-helper-tool-signing-identity
branch
from
September 5, 2026 18:40
f4220a7 to
c060742
Compare
goneng
marked this pull request as ready for review
September 5, 2026 18:45
hannesa2
pushed a commit
that referenced
this pull request
Sep 8, 2026
Run the packaged gitx tool out of a release archive, so that a bundle whose helper cannot load the frameworks beside it fails a target here rather than on a user's machine. The hardened runtime is turned on for Release only, and the team mismatch that trips library validation needs a real signing identity. The test targets build Debug and sign ad-hoc, so nothing in the suite assembles the configuration that ships, which is how the tool reached users unable to load ObjectiveGit until #595. - Add smoke-test, running Contents/Resources/gitx from the archive - Read the tool's output rather than its exit status, since it exits 1 after printing the version either way - Refuse a bundle without the hardened runtime, which asking for `dmg` in the same invocation would otherwise leave the check passing on
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.
Let the two helper tools take the code signing identity from the xcconfig
like every other target, so that a build made with a development
certificate signs them with the team the app is signed with.
Both targets pinned an ad-hoc identity in their own build settings, which
beats the project xcconfig, so the app and its frameworks were signed with
the developer team while the tools were not. The hardened runtime refuses
to map a team-signed library into a process carrying no team, so
gitx .died before it started:
certificate is configured
Test plan
xcodebuild -target "cli tool" -showBuildSettingsreports the identityfrom the xcconfig rather than
-make buildwith a Dev.xcconfig in place signsgitxandgitx_askpasswdwith the same team as the appgitx --versionfrom outside the checkout printsthe version instead of aborting in dyld