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
- Finds
install4jc(the install4j command-line builder). - Builds only the macOS installer media set (id
484) fromDeepPhe-and-Launcher.install4j. - Skips install4j signing and Apple notarization.
- Writes the DMG to
build/deepphe-installer/DeepPhe.dmg. - Mounts the DMG.
- Opens
DeepPhe Installer.app. - 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
| Option | Effect |
|---|---|
--clean | Delete build/deepphe-installer first |
--release VERSION | Override the application version (install4jc --release) |
--faster | Disable LZMA/Pack200 compression for a quicker build |
--test | Dry run; compile media but do not copy the final artifact |
--no-run | Build the DMG but do not open it |
--mount-only | Open the DMG in Finder, but do not launch the installer |
-v, --verbose | Verbose install4j output |
-h, --help | Show help |
Environment variables
| Variable | Default | Purpose |
|---|---|---|
INSTALL4JC | auto-detected | Path to install4jc |
MAC_MEDIA_ID | 484 | install4j macOS media set id |
INSTALL4JC_ARGS | — | Extra args appended to the install4jc call |
How the DMG is located
After the build, the script finds the DMG in this order:
build/deepphe-installer/DeepPhe.dmg- The path recorded for
MAC_MEDIA_IDinbuild/deepphe-installer/output.txt - The newest
*.dmgin 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.
Because the installer downloads its payloads from GitHub, a full run needs network access. Watch what it does in Install flow.