Create Macos App Bundle
To create a unique bundle identifier, you append the name of the application to the reversed domain, for example, com.cocoacasts.scribbles. Remember that you choose the bundle identifier. Reverse domain name notation is what Apple recommends and it's a pattern most developers use. The only requirement is that the bundle identifier is unique. However, inside every App bundle is an Info.plist file that contains information about the App that is useful (mainly) to Mac OS X (the types of files it handles, etc.). But the Info.plist file can also contain information about the environment that the App needs to run in. Command-line interface tools for bundling.NET Core projects into MacOS applications (.app) Installation. Install MSBuild task via NuGet package: Dotnet.Bundle. The function hcl:create-macos-application-bundle does several things to construct a suitable Mac OS X application bundle for your delivered image. It: creates the folders comprising an Application Bundle; adds the resources from a supplied template bundle (or LispWorks (32-bit).app or LispWorks (64-bit).app) to the Application Bundle.
13.3 Creating a Mac OS X application bundle
The section applies only to LispWorks for Macintosh with the native Cocoa GUI.
You should not simply run a Mac OS X/Cocoa GUI application from the command line in Terminal.app. Instead you should put the image in a suitable Application Bundle and run it using the Finder. The example delivery scripts in this manual create the Application Bundle before writing the executable.
The function hcl:create-macos-application-bundle
does several things to construct a suitable Mac OS X application bundle for your delivered image. It:
- creates the folders comprising an Application Bundle
- adds the resources from a supplied template bundle (or
LispWorks (32-bit).app
orLispWorks (64-bit).app
) to the Application Bundle - writes a suitable
Info.plist
file in the Application Bundle - returns the path of the executable within the Application Bundle
Note: You must supply identifier to provide CFBundleIdentifier when creating a bundle for your own application.
Essential Macos Apps
13.3.1 Example application bundle delivery script
Note how this script calls deliver with the executable path returned by hcl:create-macos-application-bundle
:
In the session below script.lisp
is in the user's home directory. Here is the start and end of the session output in Terminal.app:
The last line of the deliver
output shows the full path to the executable, but you should run the application bundle Othello.app via the Finder.
13.3.2 Alternative application bundle creation code
Your LispWorks Library contains example code which constructs a Mac OS X application bundle. It defines write-macos-application-bundle
which is similar to hcl:create-macos-application-bundle
.
LispWorks 5.1 and earlier versions relied on this example code to create Mac OS X application bundles and you may still wish to use it, or a modified version of it, if hcl:create-macos-application-bundle
does not meet your needs. Load the example file in your delivery script, before calling deliver, like this:
Macos App Download
There is another example, which is actually a save-image
script (rather than deliver), in
Create Macos App Bundle Software
(example-file 'configuration/save-macos-application.lisp')
13.3.3 Further Mac OS X delivery examples
Macos Application Bundle
These can be found in your LispWorks library directory:
(example-edit-file 'delivery/macos/')
Mac audio music apps. LispWorks Delivery User Guide - 10 Aug 2017