Building MacOS installers in Ubuntu with NBPackage

Toni Helenius <[email protected]> Sun, 24 Aug 2025 22:14:20 +0300
Newsgroups gmane.comp.java.ide.netbeans.user
Organization ToniArts
Message-ID <[email protected]>
Hi!

We are trying to migrate from NBI to using NBPackage to distribute our 
Netbeans Platform project. Our project is 
https://github.com/jMonkeyEngine/sdk/.

We are building these installers via Github actions, leveraging Ubuntu 
platform. I managed to build Linux DEB and Windows Inno Setup installer 
with a great effort (though not thoroughly tested yet). But I'm having 
much difficulties building MacOS PKG in Ubuntu.

If solution-wise there is something, the actual implementation can be 
seen here: https://github.com/jMonkeyEngine/sdk/pull/660.

Is it even possible to build these on Ubuntu? The error I'm getting:

Creating task for macos-pkg packager.

Checking image creation prerequisites.
Checking package creation prerequisites.
Validating required tools - [swift]
Validating required tools - [pkgbuild]
/usr/local/bin/swift
IllegalStateException
Cannot find required tool - pkgbuild
java.lang.IllegalStateException: Cannot find required tool - pkgbuild
at 
[email protected]/org.apache.netbeans.nbpackage.macos.AppBundleTask.validateTools(AppBundleTask.java:214) 

at 
[email protected]/org.apache.netbeans.nbpackage.macos.PkgTask.checkPackageRequirements(PkgTask.java:36) 

at 
[email protected]/org.apache.netbeans.nbpackage.AbstractPackagerTask.validateCreatePackage(AbstractPackagerTask.java:71) 

at 
[email protected]/org.apache.netbeans.nbpackage.ExecutionContext.execute(ExecutionContext.java:421) 

at 
[email protected]/org.apache.netbeans.nbpackage.NBPackage.createPackage(NBPackage.java:170) 

at 
[email protected]/org.apache.netbeans.nbpackage.Main$Launcher.call(Main.java:144) 

at 
[email protected]/org.apache.netbeans.nbpackage.Main$Launcher.call(Main.java:47) 

at 
[email protected]/picocli.CommandLine.executeUserObject(CommandLine.java:2031) 

at [email protected]/picocli.CommandLine.access$1500(CommandLine.java:148)
at 
[email protected]/picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469) 

at 
[email protected]/picocli.CommandLine$RunLast.handle(CommandLine.java:2461) 

at 
[email protected]/picocli.CommandLine$RunLast.handle(CommandLine.java:2423) 

at 
[email protected]/picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277) 

at 
[email protected]/picocli.CommandLine$RunLast.execute(CommandLine.java:2425) 

at [email protected]/picocli.CommandLine.execute(CommandLine.java:2174)
at 
[email protected]/org.apache.netbeans.nbpackage.Main.main(Main.java:43)