This project builds a QuickLook preview plugin for OpenRocket project files on macOS and integrates it into the existing Install4j-generated OpenRocket DMG.
Because Install4j cannot build, sign, or notarize macOS QuickLook plugins, this repository provides an external signing + notarization workflow and a helper script to inject the signed plugin into the final DMG.
Where things happen:
| Step | Tool |
|---|---|
| Build the QuickLook plugin | Xcode |
| Sign & notarize the plugin | Command line (runit script) |
| Build the main OpenRocket app | install4j |
| Merge plugin into final DMG | Command line (runit script) |
Where: Xcode or Terminal (see below)
- Open the Xcode project.
- Select the project (top-level entry in the navigator).
- For each target:
- Go to Signing & Capabilities
- Set:
- Team → your Apple Developer team
- Signing Certificate →
Developer ID Application
- Build the target normally (
⌘B).
No need to commit signing changes.
Where: Terminal
From the root dir:
xcodebuild -target "OpenRocket QuickLook Preview" -configuration Release -scheme "OpenRocket QuickLook Preview"Built app location:
build/DerivedData/Build/Products/Release/OpenRocket QuickLook Preview.app
Where: Apple Developer portal + command line
You must have:
- A Developer ID Application certificate
- An App-Specific Password for notarization
Where: Terminal
xcrun notarytool store-credentials "AppPwdNotarizID" \
--apple-id "[email protected]" \
--team-id YOURTEAMID \
--password "app-specific-password"- The string
"AppPwdNotarizID"becomes your keychain profile name - This avoids storing passwords in scripts
Where: install4j
- Build the standard OpenRocket macOS DMG using install4j.
- Ensure:
- Code signing is enabled
- Notarization is enabled
- Keep the resulting DMG — it will be modified, not rebuilt.
Where: Xcode or any text editor
Open the runit shell script and set the following variables (lines 3–5):
KEYCHAIN_PROFILE="AppPwdNotarizID"
ORIGINAL_DMG="/full/path/to/OpenRocket-original.dmg"
MODIFIED_DMG="/full/path/to/OpenRocket-with-QuickLook.dmg"What these mean:
KEYCHAIN_PROFILE
→ Name used innotarytool store-credentialsORIGINAL_DMG
→ DMG produced by Install4jMODIFIED_DMG
→ Output DMG with the signed QuickLook plugin added
Where: Terminal
cd path/to/project
./runitThe script will:
- Sign the QuickLook plugin
- Notarize it with Apple
- Insert it into the Install4j DMG
- Re-sign and re-notarize the modified DMG
Where: Xcode
- Open
runitin Xcode to inspect each step - All signing and notarization commands are explicit and linear
- No install4j involvement at this stage
- install4j builds and notarizes the main OpenRocket app
- Xcode builds the QuickLook plugin
runitbridges the gap by signing, notarizing, and merging the plugin- The final result is a Gatekeeper-clean DMG with a working QuickLook preview
This setup exists purely because macOS treats QuickLook plugins as separate executables, and Install4j does not support them.