Skip to main content

Local Mac DMG test

Use build-mac-local.sh when you just want to rebuild the macOS installer and run it — no signing, no notarization, no Windows or Linux media. It is the fastest way to iterate on the installer.

The script intentionally disables install4j signing and Apple notarization, and it does not run the Windows asset-signing helper.

The one command you usually want

./build-mac-local.sh --faster

--faster disables LZMA/Pack200 compression, which makes the build noticeably quicker at the cost of a larger DMG — perfect for testing.

What that does

  1. Finds install4jc (the install4j command-line builder).
  2. Builds only the macOS installer media set (id 484) from DeepPhe-and-Launcher.install4j.
  3. Skips install4j signing and Apple notarization.
  4. Writes the DMG to build/deepphe-installer/DeepPhe.dmg.
  5. Mounts the DMG.
  6. Opens DeepPhe Installer.app.
  7. Waits until the installer closes, then detaches the DMG.

Common variations

Start from a totally clean output folder first:

./build-mac-local.sh --clean --faster

Build the DMG but don't launch it:

./build-mac-local.sh --faster --no-run

Only mount the DMG in Finder (don't auto-launch the installer app):

./build-mac-local.sh --faster --mount-only

Compile-check the install4j project without producing a final DMG:

./build-mac-local.sh --test --faster
--test is a dry run

--test is useful for catching install4j project errors, but it does not create a fresh DeepPhe.dmg and it does not launch the installer. The script prints a reminder that nothing was launched.

Options

OptionEffect
--cleanDelete build/deepphe-installer first
--release VERSIONOverride the application version (install4jc --release)
--fasterDisable LZMA/Pack200 compression for a quicker build
--testDry run; compile media but do not copy the final artifact
--no-runBuild the DMG but do not open it
--mount-onlyOpen the DMG in Finder, but do not launch the installer
-v, --verboseVerbose install4j output
-h, --helpShow help

Environment variables

VariableDefaultPurpose
INSTALL4JCauto-detectedPath to install4jc
MAC_MEDIA_ID484install4j macOS media set id
INSTALL4JC_ARGSExtra args appended to the install4jc call

How the DMG is located

After the build, the script finds the DMG in this order:

  1. build/deepphe-installer/DeepPhe.dmg
  2. The path recorded for MAC_MEDIA_ID in build/deepphe-installer/output.txt
  3. The newest *.dmg in the output directory

It then mounts it, launches DeepPhe Installer.app (falling back to the first *.app it finds on the mounted volume), waits for it to close, and detaches the volume.

Running the installer end-to-end

Because the installer downloads its payloads from GitHub, a full run needs network access. Watch what it does in Install flow.