Migrating to install4j 10.0

In nearly all cases, migrating to install4j 10 just means opening and saving your project with the install4j 10 IDE. Nevertheless, there are some considerations with respect to backwards compatibility and a couple of behavioral changes.

Compile-time requirement for associations in archives on macOS

Starting with ARM-based macOS machines, the Info.plist files of launchers cannot be modified at runtime without breaking the signature, so all content must be generated at compile time. This means that it is not possible to conditionally add file associations or URL handlers at runtime anymore. In earlier versions of install4j, the related behavior was different for Intel and ARM-based macOS machines, which was inconsistent.

To provide a way of configuring this information, the “Executable info->macOS options” step of the launcher wizard now contains a list of file associations and URL handler definitions that are translated into the corresponding entries of the Info.plist file of the installer. Previously, archives would process the definitions of selected “Create a file association” and the “Register a URL handler” actions in the “Installer->Screens & actions” section.

You can either add a file association or a URL handler. A file association is defined by its extension, a description and an optional icon file. The role indicates whether the application just displays files or also edits their content.

The URL handler is defined by the URL scheme, so for a scheme of “hello” it handles requests in the browser that start with “hello://”.

The “Create a file association” and the “Register a URL handler” actions now only work for Windows and Linux. If you open projects that were saved with previous versions of install4j, the information from these actions is migrated into the new settings for macOS in the launcher wizard.

In situations where file associations were added conditionally, this migration may fail to produce the correct results, so you should check the migrated associations on the “Executable info->macOS options” step of the launcher wizard after opening the project in install4j 10.

Retirement of user-selectable MSI scope

Creating MSI installers that can conditionally be installed for all users or for a selected user by passing ALLUSERS=1 on the command line are no longer supported in new projects. We have found that the interaction of install4j-specific features with the user-selectable mode raises a number of undesirable behaviors and pitfalls that cannot be fixed within the architecture underlying install4j installers.

If you have already configured this setting, it will continue to work in the same way in install4j 10. However, you should switch to the per-machine or the per-user MSI scope.