feat(lume): restructure release binary as .app bundle for bridged networking#1080
feat(lume): restructure release binary as .app bundle for bridged networking#1080
Conversation
…working Restructure the lume release artifact from a standalone CLI binary into a macOS .app bundle so that a provisioning profile can be loaded by the OS, enabling the com.apple.vm.networking restricted entitlement for bridged networking support in release builds. Closes #1076
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
📦 Publishable packages changed
Add |
Add missing networkMode and clipboard parameters that were added to VM.run() but not reflected in the test mock.
📦 Publishable packages changed
Add |
Summary
.appbundle so that a provisioning profile can be loaded, enabling thecom.apple.vm.networkingrestricted entitlement for bridged networking in release buildsInfo.plisttemplate, re-addscom.apple.vm.networkingtolume.entitlements, and updates all build/install/uninstall scripts to handle the.appbundle formatPROVISIONING_PROFILE_BASE64)Details
The
.appbundle is purely a packaging mechanism — lume remains a CLI tool. A shell wrapper script at the install location (~/.local/bin/lume) exec's into the binary inside the.appbundle (~/.local/share/lume/lume.app/Contents/MacOS/lume).Files changed
libs/lume/resources/Info.plist(new) — Template with__VERSION__placeholder,LSUIElement: truelibs/lume/resources/lume.entitlements— Re-addedcom.apple.vm.networkinglibs/lume/scripts/build/build-release-notarized.sh— Assembles.appbundle, signs inner binary + outer bundle, embeds provisioning profilelibs/lume/scripts/build/build-release.sh— Assembles.appbundle with ad-hoc signinglibs/lume/scripts/install.sh— Installs.appbundle, creates wrapper script, auto-updater handles both formatslibs/lume/scripts/install-local.sh— Conditional.appbundle when--bridged-entitlementis usedlibs/lume/scripts/uninstall.sh— Cleans up.appbundle and share directory.github/workflows/cd-swift-lume.yml— AddsPROVISIONING_PROFILE_BASE64secret + install stepStill needed (manual steps)
com.apple.vm.networkingfor bundle IDcom.trycua.lume)PROVISIONING_PROFILE_BASE64as a GitHub Actions secretembedded.provisionprofiletolibs/lume/resources/Closes #1076
Test plan
build-release.shlocally, verify.appbundle structure and binary launches from inside itBundle.moduleresource resolution:lume.app/Contents/MacOS/lume config network interfacesinstall-local.sh --bridged-entitlement, verify.appis installed and wrapper worksuninstall.sh, verify all artifacts are cleaned up.appbundle viainstall.sh