Launcher Wizard: MacOS Options


  There are two steps in the launcher wizard, where you can configure optional settings for macOS launchers.

Note: these advanced option screens are reachable by selecting the "Executable" step and choosing "macOS Info.plist file" or "macOS options" from the Advanced options popup menu or by clicking directly on the index.

  In the "Info.plist fragment" section, you can configure an optional XML fragment that is inserted into the Info.plist file of the generated application bundle. This can be useful to customize the behavior of your launcher in ways that are not directly supported by install4j.

You can select one of:

  • No custom fragment
    No custom XML fragment will be inserted.
  • Custom fragment from file
    Specify a file from which the custom XML fragment will be read. If you enter a relative file, the file will be interpreted relative to the project file.
  • Direct entry
    Enter your custom XML fragment in the text area below.
  You can specify a custom Mac bundle identifier for the launcher.The bundle identifier string identifies your application to the system. Explicit control over this string can can be useful if you need to refer to the launcher from outside install4j. The identifier will be written to the CFBundleIdentifier key in in the Info.plist file. If this option is not set explicitly, install4j will generate a bundle identifier for you.

This string must be a uniform type identifier (UTI) that contains only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters.

  If you have configured code signing for macOS media files, it may make sense to specify an entitlements file on the "macOS options" step.

Entitlements confer specific capabilities or security permissions to your app. If your media file is a single bundle archive, you can publish it to the App Store only if the launcher and the bundled JRE are sandboxed. Without entitlements, the launcher will not be able to perform a lot of operations.

For installers, entitlements can be used to enable certain features on macOS, such as iCloud storage or push notifications. If your application uses these features and you create an installer, you have to select the "Sign installed launchers" check box on the "Installer Options" step of the media wizard.

  By default, the generated application bundle for a GUI application uses the "Executable name" property from the Executable info step of the launcher wizard. If you choose compact names as appropriate for Windows and Unix, you may not be happy with the appearance in the Finder on macOS.

Here, you can specify a different application bundle name that should be used for macOS media files. macOS application bundle names are localizable. If you specify an i18n variable as the application bundle name, such as ${i18n:myLauncherName}, install4j will name the application bundle directory with the value for the principal language of your project. In addition, it will take the values for all additional configured languages and set up the appropriate localization in the application bundle.

For example, if your prinicipal language is English and you have French as an additional language, the application bundle name on the disk will always be the English version, regardless of the locale. On a French locale, the French name will be displayed to the user in the finder. In a terminal, the user would still see the English name for the application bundle.

Note that i18n messages can take parameters in java.text.MessageFormat style, so if your i18n message is My launcher for {0}, you can specify {i18n:myLauncherName(My application} or even use compiler variables for the arguments, like in {i18n:myLauncherName(${compiler:sys.fullName})}.

This setting only has an effect if the launcher is a GUI launcher.