releases should get proper macos bundles and dmg downloadables for darwin #82

Closed
opened 2026-08-13 09:03:30 +00:00 by hugo · 2 comments
Owner

currently the darwin releases for the desktop app are plain unix binaries as .tar.gz files, but users expect proper apple bundle files in dmg downloads.

use https://github.com/indygreg/apple-platform-rs to update the release action to build proper MacOS bundles and dmg downloadables for the darwin releases (both x64 and arm64) instead of the .tar.gz files that are currently created.

iPhone app release is still untouched due to the specifics for that being more complex. cli and tui can stay the way they are, .tar.gz is fine for those.

currently the darwin releases for the desktop app are plain unix binaries as .tar.gz files, but users expect proper apple bundle files in dmg downloads. use https://github.com/indygreg/apple-platform-rs to update the release action to build proper MacOS bundles and dmg downloadables for the darwin releases (both x64 and arm64) instead of the .tar.gz files that are currently created. iPhone app release is still untouched due to the specifics for that being more complex. cli and tui can stay the way they are, .tar.gz is fine for those.
hugo added this to the 04 - iPhone and Apple Watch apps milestone 2026-08-13 09:03:30 +00:00
hugo added the enhancementcritical labels 2026-08-13 09:03:30 +00:00
Author
Owner

Implemented in 9def10b.

  • Added a pure-Rust macOS release packager using apple-bundles, apple-codesign, and apple-dmg, including a valid ICNS icon, bundle metadata, three embedded executables, ad-hoc app/DMG signatures, and capacity/version validation.
  • Tagged releases now produce ironstorage-desktop-VERSION-darwin-arm64.dmg and ironstorage-desktop-VERSION-darwin-x64.dmg; Darwin CLI/TUI artifacts remain .tar.gz and iPhone release packaging is untouched.
  • Verified arm64 and x86_64 release builds; both DMGs passed hdiutil and codesign verification; mounted bundles contained correctly-architected desktop/CLI/TUI executables. Computer Use launched the arm64 app from the mounted DMG and confirmed the native desktop UI rendered correctly.
  • Passed cargo fmt --all -- --check, RUSTFLAGS="-D warnings" cargo check --workspace --all-targets, cargo clippy --workspace --all-targets -- -D warnings, cargo test --workspace, workflow YAML assertions, and git diff --check.
Implemented in 9def10b. - Added a pure-Rust macOS release packager using apple-bundles, apple-codesign, and apple-dmg, including a valid ICNS icon, bundle metadata, three embedded executables, ad-hoc app/DMG signatures, and capacity/version validation. - Tagged releases now produce `ironstorage-desktop-VERSION-darwin-arm64.dmg` and `ironstorage-desktop-VERSION-darwin-x64.dmg`; Darwin CLI/TUI artifacts remain `.tar.gz` and iPhone release packaging is untouched. - Verified arm64 and x86_64 release builds; both DMGs passed hdiutil and codesign verification; mounted bundles contained correctly-architected desktop/CLI/TUI executables. Computer Use launched the arm64 app from the mounted DMG and confirmed the native desktop UI rendered correctly. - Passed `cargo fmt --all -- --check`, `RUSTFLAGS="-D warnings" cargo check --workspace --all-targets`, `cargo clippy --workspace --all-targets -- -D warnings`, `cargo test --workspace`, workflow YAML assertions, and `git diff --check`.
hugo closed this issue 2026-08-13 19:29:57 +00:00
hugo reopened this issue 2026-08-13 19:41:22 +00:00
Author
Owner

Implemented in fcf649e56d.

The release workflow now builds Darwin first and publishes proper signed IronStorage.app bundles in DMGs for both arm64 and x86_64, while CLI/TUI remain tar.gz archives and the other platforms retain their existing packaging. The macOS packager uses apple-platform-rs crates for bundle creation, ad-hoc signing, and DMG creation.

Validation:

  • Required Rust formatting, check, Clippy, and workspace test gates passed.
  • The first real release run exposed insufficient Mach-O header space for x86_64 signing; the target-specific linker padding fix addresses that root cause.
  • Corrected release run 449 completed successfully on the Linux ARM runner: https://git.rfc1437.de/hugo/IronStorage/actions/runs/8
  • All ten generated release assets were downloaded and inspected. Both DMGs passed hdiutil verification, mounted correctly, contained valid arm64/x86_64 app executables with the expected bundle metadata, and passed strict deep codesign verification.
  • The ARM64 app was launched directly from the mounted DMG with Computer Use; it rendered the existing password-store repository and remained safely locked as expected.

The temporary validation release and remote tag were removed after verification.

Implemented in fcf649e56d8c513f98d8551a8897e1f9583f2b6a. The release workflow now builds Darwin first and publishes proper signed IronStorage.app bundles in DMGs for both arm64 and x86_64, while CLI/TUI remain tar.gz archives and the other platforms retain their existing packaging. The macOS packager uses apple-platform-rs crates for bundle creation, ad-hoc signing, and DMG creation. Validation: - Required Rust formatting, check, Clippy, and workspace test gates passed. - The first real release run exposed insufficient Mach-O header space for x86_64 signing; the target-specific linker padding fix addresses that root cause. - Corrected release run 449 completed successfully on the Linux ARM runner: https://git.rfc1437.de/hugo/IronStorage/actions/runs/8 - All ten generated release assets were downloaded and inspected. Both DMGs passed hdiutil verification, mounted correctly, contained valid arm64/x86_64 app executables with the expected bundle metadata, and passed strict deep codesign verification. - The ARM64 app was launched directly from the mounted DMG with Computer Use; it rendered the existing password-store repository and remained safely locked as expected. The temporary validation release and remote tag were removed after verification.
hugo closed this issue 2026-08-14 05:41:31 +00:00
Sign in to join this conversation.