Showing posts with label app store. Show all posts
Showing posts with label app store. Show all posts

Friday, March 10, 2023

Deploying LogoRRR to Apple's App Store using JPackage


From the outset of this project, I had a strong desire to deploy
LogoRRR to the App Store. Despite my best efforts, I was unable to achieve this goal last year. However, with the release of version 23.2.0, I reached my goal and put LogoRRR into the store. In hindsight, the process was easier than I anticipated.

Initially, I tried to call the necessary tools directly to create the pkg, and used jlink to create temporary app images, but this proved unnecessary. Instead, I used jpackage, which was able to assemble everything I needed in its latest release. I encourage you to use my findings as a starting point for delivering your application to a global audience.

Here's a quick outline of my approach:

  • I used JavaFX as the GUI technology and Scala as the implementation language.
  • Maven was used as the build tool.
  • JPackage was used to create a pkg suitable for deployment to the App Store
  • Source code is available at github

To dive a little deeper into the deployment using JPackage:

  • I circumvented the modular JavaFX approach by using my own Launcher class.
  • I put everything application-related in a shaded jar.
  • I created a libs directory for everything else.
  • I created the necessary Entitlements and plist files for JPackage.
  • To keep things clean, I used an 'options' file for JPackage.

To verify my package, I used Apple's Transporter App, which gave me a quick response on any missing files in my package.

One key technique to get a valid plist file was to create a stub project in XCode to investigate the syntax required for a successful deployment.

In conclusion, deploying your application to the App Store using JPackage is a viable option. With careful attention to the steps outlined above, you too can achieve success in reaching a global audience.