This repository was archived by the owner on Dec 6, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 17
macOS: Enable Developer ID Distribution #504
Open
roop
wants to merge
37
commits into
eduvpn:master
Choose a base branch
from
roop:sysext
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
Collaborator
Author
|
Converted to draft because this depends on #498, which is not merged yet. |
Collaborator
Author
|
Rebased to master after merging of #498. @efef Please take a look at DEVELOPER_ID.md (added in this PR), which documents the distribution process. |
As a copy of EduVPN-macOS
We set it up in Xcode and then edit the project file to updates paths and names.
We set it up in Xcode and then edit the project file to remove references to the expanded APP_ID
Because when building for Developer ID release, we need to use the entitlement values with a "-systemextension" suffix.
For the "-macOS-DeveloperID" targets (app, tunnel, and loginitemhelper), for release configuration, under Build Settings: - Change "Code Signing Style" to "Manual" - Change "Code Signing Identity" to "Developer ID Application"
To help create the macOS installer package for a Developer ID release.
-TunnelExtension and -LoginItemHelper xcconfigs were just duplicates.
We don't have a shared location between the app and the system extension to write the log, so we instead rely on the OS-provided unified logging. So when the user clicks on "View Log", we show a view that shows how to access the log using Console.app or log show.
In case of an App Extension, there's a shared Keychain we can use to pass the password through. In case of a System Extension, we don't have a shared Keychain, so we just pass it directly.
75d5bf1 to
0f320fd
Compare
Collaborator
Author
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This PR creates additional targets (with "-DeveloperID" suffix) that can be used for Developer ID Distribution of the macOS app (for distribution outside of the Mac App Store).
The tunnel extension is bundled as a system extension. The system extension is attempted to be installed at app launch -- there will be prompts at app launch for that.
Differences from the App Store version:
Creating the Developer ID Distribution is somewhat complex, and is documented in DEVELOPER_ID.md which is part of this PR.