in src/main/java/org/apache/netbeans/nbpackage/macos/AppBundleTask.java [197:215]
private void setupInfo(Path contents, String execName) throws IOException {
String template = MacOS.INFO_TEMPLATE.load(context());
var tokenMap = Map.of(
"BUNDLE_NAME", getBundleName(),
"BUNDLE_DISPLAY", context().getValue(NBPackage.PACKAGE_NAME).orElseThrow(),
"BUNDLE_VERSION", context().getValue(NBPackage.PACKAGE_VERSION).orElseThrow(),
"BUNDLE_EXEC", execName,
"BUNDLE_ID", context().getValue(MacOS.BUNDLE_ID)
.orElse(sanitizeBundleID(getBundleName())),
"BUNDLE_ICON", execName + ".icns"
);
String info = StringUtils.replaceTokens(template, tokenMap);
Files.writeString(contents.resolve("Info.plist"), info,
StandardOpenOption.CREATE_NEW);
}