fix(release): ship map/asset editors as macOS .app + launch.command #161
No reviewers
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo!161
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/macos-editor-app-bundles"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Ship the macOS map editor and asset editor as double-clickable
.appbundles (they were plain folders of ~200 files), and add alaunch.commandto every macOS zip that unlocks the unsigned app and opens it.Context: you flagged the release macOS assets. I downloaded the 0.1.4 assets and checked — the client
.appis fine (still a properIsoMmo.appbundle, unchanged since #101). The gap was the GUI dev tools: the map/asset editors were only everzipdir'd as loose folders (added that way in #147), never.apps.macos_app()(scripts/ci/lib.sh) from client-only to any self-contained publish:macos_app PUBLISH VERSION STAGING NAME EXECUTABLE BUNDLE_ID CATEGORY, filling a sharedscripts/ci/macos-app.plisttemplate (__NAME__/__BUNDLE_ID__/__EXECUTABLE__/__CATEGORY__/__VERSION__). Replaces the hard-codedIsoMmo.app+ clientInfo.plist.IsoMmo Map Editor.app; asset editor →IsoMmo Asset Editor.app; client unchanged (IsoMmo.app, same values, now via the generic helper). Windows editors stay plain folders.launch.command(macos_launcher()) in every macOS zip:xattr -cr(falling back toxattr -c) + ad-hoccodesign --force --deep --sign -+open..command, not.sh, so Finder runs it on double-click. Plus a short per-tool unlock note for the editors; the client's note now points atlaunch.commandas the easy path.How it was tested
Locally on macOS (arm64), using the released 0.1.4 map-editor publish output as the
dotnet publish -r osx-arm64stand-in:macos_appproducesIsoMmo Map Editor.appwithContents/{MacOS,Resources,Info.plist};plutil -lintOK;CFBundleExecutable=IsoMmo.MapEditor,CFBundleName=IsoMmo Map Editor, version + id correct; the apphost is a+xMach-O arm64.launch.commandis+xwith the right app name; running its unlock steps ad-hoc-signs the bundle andcodesign --verify --deep --strictpasses. (xattr -crisn't supported on every macOS build — the|| xattr -cfallback covers it, matching the existing note.) Theopenline was inspected, not run, to avoid spawning a GUI window.python3 yaml.safe_loadonrelease.yamlandbash -nonlib.shpass; all helpers resolve.CI's Lint & Test job is unaffected (no compiled code changed). The bundling only exercises on a tag build — I could not run the full release pipeline pre-merge, so the definitive check is the next tagged release's assets.
Checklist