Skip to content

ci: prebuilt ad-hoc-signed tester releases#53

Open
mhellevang wants to merge 4 commits into
mrmidi:mainfrom
mhellevang:ci/tester-release
Open

ci: prebuilt ad-hoc-signed tester releases#53
mhellevang wants to merge 4 commits into
mrmidi:mainfrom
mhellevang:ci/tester-release

Conversation

@mhellevang

@mhellevang mhellevang commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Adds a release workflow that builds an ad-hoc-signed ASFW.app on v* tag pushes and attaches it to a GitHub prerelease, so testers can try ASFW without Xcode or a developer account.

  • sign.sh: re-signs the dext + app ad-hoc with their entitlements embedded (build.sh output is unsigned by design, and a dext without embedded entitlements won't load). HW-verified on Apple Silicon / Tahoe: loads with SIP off + systemextensionsctl developer on, no boot-args.
  • .github/workflows/release.yml: tag push -> build, sign, verify entitlements, attach ASFW-<version>-adhoc.zip to a prerelease. workflow_dispatch uploads an artifact instead, for testing the pipeline.
  • README: install/uninstall instructions for the prebuilt build, with SIP warning.

The -adhoc suffix leaves ASFW-<version>.zip free for a future properly signed/notarized asset on the same release.

Pipeline tested end-to-end on my fork: https://github.com/mhellevang/ASFireWire/actions/runs/29040906402

build.sh builds unsigned (CODE_SIGNING_ALLOWED=NO), so a dext with restricted
entitlements will not load. Add sign.sh to ad-hoc re-sign the dext then the app
with their entitlement files (embedding them so AMFI honors them with SIP off +
developer mode, no amfi boot-arg). Ad-hoc has no team/profile, so one build
installs on any Mac.

Add .github/workflows/release.yml: on v* tags builds Release, signs, and
attaches the zip to a GitHub Release; workflow_dispatch uploads it as an
artifact for pipeline testing on a fork.

Add a README 'Installing a prebuilt build (testers)' section: quarantine strip,
SIP off, developer mode, install, verify.
… command

- upload-artifact name without .zip suffix (artifact downloads are zip
  containers themselves)
- warn when tag disagrees with CFBundleShortVersionString (--no-bump build)
- drop unneeded fetch-depth/submodules from checkout (no submodules)
- README: spell out systemextensionsctl uninstall with '-' team ID
Keeps ASFW-<version>.zip free for a future properly signed/notarized
asset on the same release.
@mhellevang mhellevang marked this pull request as ready for review July 9, 2026 18:41
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.

1 participant