Mac app code signing for beginners
livfoss at mac.com
Thu Apr 26 17:53:10 EDT 2018
In response to messages on both lists, this is an explanation of the way I’ve successfully code-signed apps for Mac using the simplest possible methods. I’m talking about desktop apps made in LC to run on Mac OSX - I am currently using LC9.0. This seems to work for me (of course YMMV). There are very much more complex ways of doing this, which I am sure produce a “purer” version of the app without surplus stuff in the PLIST.
I am leaving out a very large quantity of settings and options, and I’m not taking advantage of the many powerful features of the Code Signing utility I use, App Wrapper 3. So if you are feeling mentally strong, I recommend you try to understand these and take advantage of them. App Wrapper 3 is well documented, and one can also write to Support. Probably a lot of things I’ve done, including signing the installer separately, could be done in better ways.
1 Create your standalone using the Standalone building features of the IDE. Note that you will need to provide an icon in “.icns” format for the app itself, and if it has documents, a document icon. For the PLIST material, choose the option to let LiveCode write the PLIST for you,
You must name the program - this is the name the user sees. If you have documents, again you have to put in the document type and the extension.
I leave out the signature (it just stays at “????”). This doesn’t seem to do any harm in modern versions of OSX.
You must all fill in all the version information.
Of course you need to check the files to be copied - since my apps tend to be “splash stack” designs, there are other stacks to be included in the app, plus preference files, manuals etc.
Don’t forget any inclusions.
2. Run the standalone to make sure it really works.
3. Now, we need to code sign it. I use App Wrapper 3 (the current version appears to be 3.8.5 - sadly this appears to be a 32-bit app, let’s hope it’s upgraded before Apple deprecates them all this Autumn).
App Wrapper 3 wants to know a pile of stuff, but some of it can be ignored if you are not planning to distribute via the Apple Store. I found I had to tell it in its “General” tab :
- The Category (Education, etc)
- The minimum OSX - I think a pretty recent version is best, say 10.9 - this will mean less squawking in reports later
- The copyright notice (I’m not sure you need this, as the Standalone Maker already recorded one)
- The version format - I use “trim to 3 decimal places - - x.x.x”
- The About Box credits - this is free text
I check Reset Permissions for the entire application, not sure what this means. I have always found permissions deeply mysterious, but on we go…
I never have a Help Book, so I don’t know what do do if you don’t leave this blank, sorry
The ‘Code Signature’ needs to point to whatever valid certificate you have - mine is a ‘web distribution’ one, which means no Apple Store, but I can offer it on a server, and I do.
I use Zip File packing, which I think is the default.
I set the destination folder for the signed version and leave the tab at that.
For the “Capabilities” tab, I don’t need anything, but most people will need something related to the OS’s facilities such as Open and Save dialogs - so set what you need.
The “info” tab doesn’t really need you to do anything.
The “Other" gives you the opportunity to remove unwanted languages, but apart from that, leave alone.
Now click “wrap” and App Wrapper should produce a code-signed version of your app in a folder created by App Wrapper.
At this point you can can go back to the beginning of App Wrapper’s tabs and get a report. This can seem extremely scary, but really the only thing to worry about is if the code-signing has worked or not. What I regret is that I have not yet understood how to supply complete icon families, so the report says various sizes of icon are missing. This will not stop your app working, but it is still regrettable.
If you have mastered all this, you can create an installer with Matthias Rebbe’s InstaMaker or directly with DropDMG (this message doesn’t seek to explain how to do this), and you can code sign the installer, which I do.
I feel a bit of a fraud writing all this, but it really has worked for me. So, HTH
More information about the Use-livecode