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.
You can select one of:
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.
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.
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.