Skip to content

i2p/i2p-jpackage-mac

Repository files navigation

I2P JPackage Mac

JPackage scripts for packaging I2P on a Mac.

Requirements

  • Java 16 or newer. Even though JPackage existed since 14, it was broken.
  • An Apple signing certificate. The JBigi and JRE libs and the final bundle MUST be signed or users will get a scary warning.

Building

  1. See BUILD.md

How does it work

In order to build an AppBundle that can work from anywhere, it is necessary to use a dedicated main class which determines the current working directory and sets i2p.dir.base to the correct location inside the AppBundle. Therefore the build.sh script:

  1. Compiles the custom main class and puts it in a launcher.jar
  2. Invokes JPackage with the --app-image switch to create the directory structure of the bundle
  3. Copies the contents of ../i2p.i2p/pkg-temp inside the AppBundle, except for the jars directory
  4. Signs the AppBundle
  5. Invokes JPackage again to build the final .dmg