Mac App Store

Hello,

Is there an up-to-date tutorial for downloading a Xojo app from the macStore. I read one on the forum that some were using AppWrapper. Do I have to use this paid software?

I am looking for a free solution. I have already paid for the Xojo license and the MBS license and I can’t (can’t) spend more money on this project.

Which tutorial are you referring to? Maybe this is still relevant?

You can do the neccesary code-signing and packaging without AppWrapper, using the comand-line tools Apple installs with Xcode.
To upload your code-signed and packaged app to the Mac App Store you can use Apples “Transporter” app (could be found in category “Developement” in the Mac App Store).

The whole process is tricky and has a lot of points to fail - this is the reason why many people use AppWrapper.

You will need to get a Developer account at Apple, that costs $99 per year.
That will allow you to create an app record in the store.
To get it there, you will need parts of Xcode (Transporter) - Thats free

Code signing and notarising the app before it gets sent, is a minefield.
There may be tutorials out there about how to do it manually, but whether you want to spend money or not, buy App Wrapper. I cannot stress that strongly enough. It is not expensive, and it will save you weeks of work.
If your app will sell , the investment is worth it.

I would be interested to know what your app does?

I already have a Developper account and I know how to sign app and managing certificates. I already have some application made with flutter and Xcode on the App Store.

I follow this Xojo documentation entry :Desktop app deployment — Xojo documentation

Transporter needs an .ipa or a .pkg file and for now Xojo create an .app file

This is where am I for now.

My application is a small Midi utility to send midi notes to a virtual Midi Output. It’s a very simple application. It’s a small step before a larger one in the future. I always make development with small steps one after an other.

You have to use a package maker app to create .pkg packages. Should be discribed in Apples Guidelines to distribute apps.

The app „packagemaker“ mentioned in the tutorial is outdated and not longer supported by Apple….

This where am I :face_holding_back_tears:

I can not make a .pkg file from my .app

You might try this:

http://s.sudre.free.fr/Software/Packages/about.html

I havent, but it’s free… worth a try

No, Transporter needs a pkg or a dmg.

I use DropDMG to make the dmg. I also use Packages (WhiteBox - Packages) to make a pkg. The app looks like it was made in the 90s but it works fine. If you don’t wan to use AppWrapper use can use SD Notary instead (SD Notary: Notarizing Made Easy | Late Night Software).

There is a command-line tool called “pkgbuild” you can use to make a .pkg file or give the “Packages” app a try…

Transporter doesn’t accept DMG

1 Like

Oh sugar, you are correct. The Transporter app is for the AppStore which only likes ipa or pkg.

1 Like
seb@iMac-de-Sebastien app % pwd
/Users/seb/Developer/Apple/app
seb@iMac-de-Sebastien app % ls
VirtualMidiSend.app
seb@iMac-de-Sebastien app % pkgbuild --identifier fr.monkeydev.virtualmidisend --root /Users/seb/Developer/Apple/app /Users/seb/Developer/Apple/app/VirtualMidi.pkg                  
pkgbuild: Inferring bundle components from contents of /Users/seb/Developer/Apple/app
pkgbuild: Adding component at VirtualMidiSend.app
pkgbuild: Adding component at VirtualMidiSend.app/Contents/Frameworks/XojoFramework.framework
pkgbuild: Wrote package to /Users/seb/Developer/Apple/app/VirtualMidi.pkg
seb@iMac-de-Sebastien app % ls
VirtualMidi.pkg		VirtualMidiSend.app
seb@iMac-de-Sebastien app % pkgbuild --identifier fr.monkeydev.virtualmidisend --root /Users/seb/Developer/Apple/app /Users/seb/Developer/Apple/app/VirtualMidi.pkg --sign XXXXX     
pkgbuild: Inferring bundle components from contents of /Users/seb/Developer/Apple/app
pkgbuild: Adding component at VirtualMidiSend.app
pkgbuild: Adding component at VirtualMidiSend.app/Contents/Frameworks/XojoFramework.framework
pkgbuild: error: Could not find appropriate signing identity for “XXXXX”.
seb@iMac-de-Sebastien app %

With pkgbuild I can make a .pkg from .app build by Xojo. But when I try to use the Sign option it doesn’t work

without sign option I got this error on Transporter:

Screenshot 2022-10-16 at 10.44.44

How do you codesign your app? Search the forum for a topic from Jürg Otter where he made something for codesigning.

You need a "Developer ID Installer” certificate, then you can use this in the pkgbuild command

--sign "Developer ID Installer: *******"

where the quoted text refers to the name of your certificate. Finally you have to sign the .pkg file with something like this:

sudo productbuild --package /path_to_saved_package/packagename.pkg       --content /path_to_app/         --sign "Developer ID Installer: *******"       /path_to_signed_pkg/signed.pkg

(Found on: https://www.hexnode.com/mobile-device-management/help/how-to-sign-macos-pkg-files-for-deployment-with-hexnode-mdm/)

Thank @Thomas_Roemert on more step. With your solution I have now this error on transporter: Failed to get the app‘s bundle id.

When I run “Verify” on Transporter I have a lot of issue:

Asset validation failed (90296)
App sandbox not enabled. The following executables must include the “com.apple.security.app-sandbox” entitlement with a Boolean value of true in the entitlements property list: [( “app.pkg/Payload/Virtua MidiSend.app/Contents/MacOS/Virtual Midi Send” )] Refer to App Sandbox page at App Sandbox | Apple Developer Documentation for more information on sandboxing your app.

Asset validation failed (90264)
The lowest minimum system version [none] in the Product Definition Property List must equal the ‘LSMinimumSystemVersion’ value [10.10.0] in the ‘Info.plist’.

Asset validation failed (90230)
Invalid product archive metadata. Error in keyPath [product-metadata.product-identifier]. Please re-build your archive with an up-to-date version of Xcode, and submit again.

Asset validation failed (90230)
Invalid product archive metadata. Error in keyPath [product-metadata.product-version]. Please re-build your archive with an up-to-date version of Xcode, and submit again

Asset validation failed (90000)
This bundle is invalid. Package “app”: Bundle at “Virtua MidiSend.app” in Payload not declared in PackageInfo.

Asset validation failed (90234)
The product archive is invalid. The product archive may not include multiple installer packages.

Asset validation failed (90237)
The product archive package’s signature is invalid. Ensure that it is signed with your “3rd Party Mac Developer Installer” certificate. (ID: 3313b53d-1416-464b-b89f-a68776b3f0a7)

Asset validation failed (90000)
This bundle is invalid. Package “app”: Bundle at “Virtua MidiSend.app/Contents/Frameworks/XojoFramework.framework” in Payload not declared in PackageInfo.

Asset validation failed (90270)
Unsupported toolchain. Packages submitted to the App Store must be created either through Xcode, or using the productbuild[1] tool, as described in “Submitting your Mac apps to the App Store.” Packages created by other tools, including PackageMaker, are not acceptable. [SIS]

Asset validation failed (90252)
The product archive is invalid. The installer package may not include paths outside of a bundle.

Asset validation failed (90296)
App sandbox not enabled. The following executables must include the “com.apple.security.app-sandbox” entitlement with a Boolean value of true in the entitlements property list: [( “VirtualMidi.pkg/Payload/Virtua MidiSend.app/Contents/MacOS/Virtual Midi Send” )] Refer to App Sandbox page at App Sandbox | Apple Developer Documentation for more information on sandboxing your app. (

Asset validation failed (90266)
Your application bundle must install to ‘/Applications’.

Look like the info.plist created by Xojo is far a complete one!

No, you are completely missing the sandboxing part of your app. There IS a reason for using AppWrapper because it handles most of the awful Apple stuff for you.

1 Like

Xojo complete missing it. The info.plist file create by Xojo is basic.

The cost for a simple Xojo app is very expensive : $399 for a desktop version + $429 for MBS plugin + $99 for an apple dev account + $49 for Appwrapper TOTAL: $976 !!

This is not Xojos fault, its your task to fulfill Apples requirements for a Mac App Store upload, like code-signing, sandboxing, hardening runtime, building a correct package, setting entitlements etc.

As Beatrix already wrote, there is a very good reason why many developer use AppWrapper. You can do it without it, but it is hard work.

2 Likes