Converting a Mac Console app into an App Package

I have been working on options for Notarizing my Mac Console app. One of the possibilities is to convert the built Unix Executable along with all the Libs that Xojo creates into a standard Mac App Package/Bundle and then Notarize that. It just requires creating a properly named/structured folder, placing the files in it and adding a valid info.plist.

So far, with some basic testing, the app seems to work without any problems. I can launch it from the desktop or from a Terminal window.

Is this a bad idea? I am missing something that is going to come back and bite me for some reason?

Any thoughts are appreciated.

Why take all the risk? Console projects can be turned into Desktop projects pretty easily. Am I glossing over a reason to do all this extra work?

It might be worth looking into that option but… The project is cross platform including Linux and Windows… The Linux users especially require a service/console app… and I do not want to have multiple projects or even have to recreate a special desktop project for Mac with each build.

Don’t you have a GUI app there, where you can include the console app in the bundle?

Not really… There is a “sister” GUI app that an Admin uses to manage the Service/Console app via HTTP… but it is usually not running and can even be installed on a different machine… In the case of Linux must be… because I do not ship a Linux version of that app.

But are you suggesting creating a GUI app that simply launches the Console app which has been added into the GUI’s bundle?

[quote=451234:@Jim Meyer]I have been working on options for Notarizing my Mac Console app. One of the possibilities is to convert the built Unix Executable along with all the Libs that Xojo creates into a standard Mac App Package/Bundle and then Notarize that. It just requires creating a properly named/structured folder, placing the files in it and adding a valid info.plist.

So far, with some basic testing, the app seems to work without any problems. I can launch it from the desktop or from a Terminal window.

Is this a bad idea? I am missing something that is going to come back and bite me for some reason?

Any thoughts are appreciated.[/quote]

Following up on my own post: Yes, bad idea. Creating an App Package seemed to work until I the code called a XojoScript… which then crashed the app. So this is a dead end.

Been doing some work with trying to Notarize console applications. There are several issues.

  1. When included inside of apps, Apple’s code sign doesn’t like a “Resources” folder which accompanies some console applications.
  2. A typical application bundle, plugin bundle isn’t the best fit because the layout of the contents needs to be adjusted, not to mention that Application bundles expect a GUI app, not console. Using a Framework structure is the best fit, however console applications are not dylibs, so this still isn’t an ideal solution.

You require entitlements to dynamically execute code, when using hardend runtime, which was required for Notarization (technically is still required, but some of the rules are relaxed until next year). These options are available from within App Wrapper.

Once I have a solution, I will add it to App Wrapper, in the meantime I’ve not gotten much luck in getting a preferred method of Notarizing from my contacts at Apple, which leads me to believe that they didn’t prepare for this.

Sam…

You are a life-saver again… Now my console packages app can run XojoScript… by turning on the AppWrapper Capabilities Hardend Runtime options.

I will continue to test and make sure there are no other issues.