Skip to content

In-app updates via AppUpdater #15

Description

@trsdn

Goal

md2loop should update itself from GitHub Releases.

Specific to this repository

  • Broker profile: md2loop (Xcode, already uses a broker dependency_lock). The DMG is md2loop-{version}-macos.dmg.
    • Add md2loop-{version}.dmg as a copy_of it.
    • The DMG must contain one app named like the installed one.
  • Lock: add AppUpdater to the Xcode project (project.yml) and update the broker's locks/md2loop-Package.resolved in the same broker PR, because the adapter overwrites the workspace lock with it.
  • Resource bundle: declare AppUpdater_AppUpdater.bundle under nested_resource_bundles, because Xcode embeds it.
  • release.yml: it signs releases itself. Make sure it doesn't also publish a DMG under the updater's name, which would race the broker.

Reference implementation

This is the same setup as OpenLens, OpenDefendrWatchr, OpenZombr and OpenConnct, all released on 2026-09-16:

To do

  • Add AppUpdater 4.1.2 (exact version) and commit Package.resolved.
  • Add an UpdateManager and menu items, and stop the app's work before installing.
  • Broker: add the dependency lock, the resource bundle declaration if needed, and the md2loop-{version}.dmg copy_of artifact.
  • Release with scripts/request.sh md2loop vX.Y.Z --publish.
  • After two releases, test a real update on a Mac other than the build machine.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions