Hi Alexey, all,

I nailed down the problem to the following, which seems to differ between
JDK25 and JDK21.
Maybe this helps to reproduce the issue.

jpackage is called 3 times in my process

   1. /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin/jpackage
   --type app-image --input
   /Users/daniel/Documents/GitHub/myPROJECT/build/install/myPROJECT/lib
   --main-jar myPROJECT-25.11.03.jar --main-class
   eu.my_company.myproject.Launcher --dest
   /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage --name myPROJECT
   --app-version 25.11.03 --runtime-image
   /Users/daniel/Documents/GitHub/myPROJECT/build/jre --java-options
   --add-opens=javafx.base/com.sun.javafx.collections=ALL-UNNAMED
   --java-options --add-opens=javafx.base/com.sun.javafx.event=ALL-UNNAMED
   --java-options
   --add-opens=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED
   --java-options
   --add-opens=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED
   --java-options
   --add-opens=javafx.controls/javafx.scene.control.skin=ALL-UNNAMED
   --java-options --add-exports=java.management/javax.management=ALL-UNNAMED
   --java-options
   --add-opens=java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED
   --java-options --add-opens=javafx.graphics/com.sun.glass.ui=ALL-UNNAMED
   --icon src/main/deploy/package/macosx/myPROJECT.icns
   --mac-package-identifier eu.my-company.myproject --mac-sign

   2. /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin/jpackage
   --type pkg --dest /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage
   --name myPROJECT --app-version 25.11.03 --app-image
   /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage/myPROJECT.app
   --file-associations src/main/resources/associations.properties
   --app-version 25.11.03 --vendor "My Company" --copyright "My Company"
   --mac-sign

   3. /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin/jpackage
   --type dmg --dest /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage
   --name myPROJECT --app-version 25.11.03 --app-image
   /Users/daniel/Documents/GitHub/myPROJECT/build/jpackage/myPROJECT.app
   --file-associations src/main/resources/associations.properties
   --app-version 25.11.03 --vendor "My Company" --copyright "My Company"
   --mac-sign


First it creates the app-image and afterwards it creates pkg and dmg and
signs it.

As you can see in the 3 commands, it uses JDK21.
Once I change "jdk-21.jdk" with "jdk-25.jdk" it warns after step 2 already
with the following message in German

Warnung: Nicht signiertes app-image wird zum Erstellen von signiertem pkg
verwendet.

It translates to something like: it tries to sign pkg and complains that
the app-image is not signed.
Hence, somehow step 1 failed already but does not show any error/warning.

Please let me know whether the above helps to reproduce the issue.

Thanks,

-- Daniel



On Tue, Nov 4, 2025 at 4:01 PM Daniel Peintner <[email protected]>
wrote:

> Hi Alexey,
>
> Thank you for your reply.
> I am using the badass runtime plugin which calls jpackage under the hood.
>
> While trying to create an example project, I noticed that there were some
> changes
> '--mac-package-identifier' needs to go into imageOptions and
> not installerOptions.
> see
> https://github.com/danielpeintner/Java11Test/commit/742fce0d9e2995554829b6f199f22f0b22a5d385
>
> That fixed the problem with jpackage. Anyhow, it still does not work with
> JDK25 and macOS signing.
> Using the JDK25 seems to need additional options (compared to JDK21).
>
> With JDK25 and --mac-sign the process no longer opens the KeyChain access
> and asks for the credentials. Hence, the image itself is no longer signed
> which matches with what I see on the debug console
> "non signed app-image used to sign dmg"  ... freely translated into
> English since I see the German version only
>
> Therefore, apple's notary service says invalid with the logs like "The
> binary is not signed with a valid Developer ID certificate".
>
> Using the *same* gradle file, switching to JDK21 works without any issues
> again.
> I will try to investigate further.
>
> Thanks,
>
> -- Daniel
>
>
>
>
> On Mon, Nov 3, 2025 at 7:30 PM Alexey Semenyuk <[email protected]>
> wrote:
>
>> Hi Daniel,
>>
>> I can not reproduce the issue you experience with jdk25.0.1:
>>
>> ---
>> $ ~/jdk-25.0.1.jdk/Contents/Home/bin/jpackage --input input --dest output
>> --type app-image --main-jar hello.jar --main-class
>> com.my_domain.project.Hello --mac-package-identifier com.my-domain.project
>> $ echo $?
>> 0
>> ---
>>
>> If I run the same command line without ` --mac-package-identifier` option
>> it fails as expected:
>> ---
>> $ ~/jdk-25.0.1.jdk/Contents/Home/bin/jpackage --input input --dest output
>> --type app-image --main-jar hello.jar --main-class
>> com.my_domain.project.Hello
>> Bundler Mac Application Image skipped because of a configuration problem:
>> invalid mac bundle identifier [com.my_domain.project].
>> Advice to fix: specify identifier with "--mac-package-identifier".
>> ---
>>
>> The same failure for `--mac-package-identifier com.my_domain.project`
>> (with the underscore):
>> ---
>> $ ~/jdk-25.0.1.jdk/Contents/Home/bin/jpackage --input input --dest output
>> --type app-image --main-jar hello.jar --main-class
>> com.my_domain.project.Hello --mac-package-identifier com.my_domain.project
>> Bundler Mac Application Image skipped because of a configuration problem:
>> invalid mac bundle identifier [com.my_domain.project].
>> Advice to fix: specify identifier with "--mac-package-identifier".
>> ---
>>
>> Any chance you accidentally put the string with the underscore instead of
>> the hyphen as a value of the `--mac-package-identifier` option on your
>> command line?
>>
>> - Alexey
>>
>> On 11/3/2025 11:43 AM, Daniel Peintner wrote:
>>
>> Hi,
>>
>> I am about to switch a JavaFX project from JDK21 to JDK25 and I noticed a
>> problem when running jpackage.
>>
>> My domain has a hyphen, like in www.my-domain.com
>> Hence, my Java package reads like this: com.my_domain.project
>> Note: hyphen becomes underscore.
>>
>> Running vanilla jpackage in JDK21 complained with
>> Invalid Mac-Bundle-ID [com.my_domain.project]
>> due to the *invalid* underscore and suggests me to use
>> "--mac-package-identifier"
>>
>> Hence, I added --mac-package-identifier com.my-domain.project (with the
>> hyphen again)
>> All good so far.
>>
>> Running the same code with JDK25 with the above settings shows the error
>> message again
>> Invalid Mac-Bundle-ID [com.my_domain.project]
>>
>> I can add any argument to  --mac-package-identifier
>> It seems it is simply not taken into account.
>>
>> I am using JDK 25.0.1
>>
>> Is this a known issue with JDK25 and jpackage?
>> Is there any other way to make jpackage work?
>>
>> Thanks,
>>
>> -- Daniel
>>
>>
>>
>>

Reply via email to