Part of the deployment pipeline umbrella: #3
Goal
bash build.sh compiles a universal binary, assembles a .app bundle, ad-hoc signs it, and zips it to dist/RunnerBar.zip. Double-clicking the .app shows the gray dot in the menu bar.
Acceptance test
- Run
bash build.sh — exits cleanly, no errors
dist/RunnerBar.zip exists
- Unzip and double-click
RunnerBar.app — gray dot appears in menu bar, no Gatekeeper dialog
- Verify universal binary:
lipo -archs dist/RunnerBar.app/Contents/MacOS/RunnerBar prints x86_64 arm64
build.sh must
- Compile with
--arch arm64 --arch x86_64
- Assemble
dist/RunnerBar.app/Contents/{MacOS,Resources}
- Copy binary and
Info.plist
- Ad-hoc sign:
codesign --force --deep --sign -
- Zip with
ditto -c -k --keepParent
- Write
dist/version.txt
Part of the deployment pipeline umbrella: #3
Goal
bash build.shcompiles a universal binary, assembles a.appbundle, ad-hoc signs it, and zips it todist/RunnerBar.zip. Double-clicking the.appshows the gray dot in the menu bar.Acceptance test
bash build.sh— exits cleanly, no errorsdist/RunnerBar.zipexistsRunnerBar.app— gray dot appears in menu bar, no Gatekeeper dialoglipo -archs dist/RunnerBar.app/Contents/MacOS/RunnerBarprintsx86_64 arm64build.sh must
--arch arm64 --arch x86_64dist/RunnerBar.app/Contents/{MacOS,Resources}Info.plistcodesign --force --deep --sign -ditto -c -k --keepParentdist/version.txt