This article is a checklist of all the tasks I ran into that were required to get a LiveCode macOS app onto the AppStore, last used February 20, 2019. Because the AppStore requirements change continually, this checklist will slowly get out of date, experience bit-rot. Let me know if these instructions fail you and I'll attempt to fix them. My thanks to the LiveCode community and LiveCode support team. Much of this arcane voodoo was passed on to me by others.Please note, line wrapping within this article for the command line commands can hide or imply spaces.
![]()
Plum Amazing is dedicated to creating essential iOS, Windows, Android and Mac apps. Plum Amazing has provided apps worldwide since the last century. Creating and selling Mac and Win software via this plumamazing.com site. Our Android apps are featured on Google Play. The Apple’s App Store features our iOS and some Mac apps.
Suggest you copy the command lines into a text editor to see the correct command, spaces or not. The application icon is required to be available in a set of sizes. Instead of an asset catalog, LiveCode uses an.icns file for the app icon images.
I found two ways to generate the.icns file and both require a 1024x1024 png app icon image.GraphicConverter 10: Open the png and Save As the file type.icns.Asset Catalog Builder: Is available on the App Store. Creates an asset catalog of all the required icon resolutions but it does not put them into an.icns file.
Take the output folder from asset catalog builder, remove the json file, rename the folder '.iconset'. Replace with any word you desire. The important part is that the name end in '.iconset'. In Terminal enter: iconutil -convert icns for example: iconutil -convert icns '/Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset'Note, if you are not familiar with Terminal, it is in Applications / Utilities and instead of typing the path to the iconset folder, you can drag and drop that folder into Terminal and it will enter the complete path for you.Select the resulting.icns files in your Standalone Application Settings.To verify your.icns file has a 1024x1024 image, open it in Preview and 'Get Info' on the images to see if one is 1024x1024. The first image in my.icns file is that resolution.
Each upload to the App Store needs a unique version number. In LiveCode Application Settings / Mac / Short Version, increment the version number. In my case I submitted 2.0 and that version was rejected so I changed the next version to be reviewed to 2.0.1. The App Store uses the version values in the Standalone Application Settings windows so be sure to provide that exact version to the App Store.Note, the version number (CFBundleVersion and CFBundleShortVersionString) can be at most three positive integers separated by periods. LiveCode defaults to 1.0.0.0 which violates that rule.
A version number of the format 1.0.0 is acceptable.Note also that each version that gets uploaded needs a new version number. When you upload a new version and Apple comes back with an error email telling you about something that needs to be fixed, you will need to increment your version number before uploading the corrected application.
The App Store looks at the list of localization.lproj files to determine which languages the app supports. Apple is no longer using the names of languages (English, Dutch, Japanese, etc), instead the lproj folders must use the proper ISO codes.
For example en.lproj is for English, jp.lproj is for Japanese, etc.Open the standalone app to Show Package Contents / Contents / Resources and remove all the lproj folders that your app does not support. Rename the others using the ISO codes. My app only supports English so the only lproj folder in my app is en.lproj.
NOTE: tsNet.bundle is only included in apps that utilize internet connectivity. Skip this step if you do not have 'tsNet.bundle' in Show Package Contents / Contents / MacOS / Externals / tsNet.bundle.There is a code resource within LiveCode app bundles named tsNet and your tsNet in your app needs to be 'owned' by you otherwise you get a CFBundleIdentifier Collision when uploading your app. Go to Show Package Contents / Contents / MacOS / Externals / tsNet.bundle / Show Package Contents / Contents / Info.plist If your domain is 'YOURCOMPANY.com' and your app is named 'YOURPRODUCT' then replace 'au.com.techstrategies.external.tsNet' with 'com.YOURCOMPANY.YOURPRODUCT.tsNet' in the Info.plist file in the tsNet.bundle.For my app, I edited it to: CFBundleIdentifiercom.txfconvert.txfconvert.tsNet. Note: not all apps will have revsecurity.dylibNote: LiveCode 9.0.1 and earlier are outputting a universal version (64-bit and 32-bit) of revsecurity.dylib.
Future versions might cease doing that. The number of bytes in the disallowed version is 3,892,216 and after the removal of 32-bit code the byte size is 2,085,880.Go to Show Package Contents / Contents / MacOS / revsecurity.dylib. If revsecurity.dylib is present, you must remove the 32-bit code from that dynamic library. Sudo lipo -remove i386 -output. Note: not all apps will have revpdfprinter.dylib (mine does not)Note: It is my understanding that LiveCode 9.0.1 and earlier are outputting a universal version (64-bit and 32-bit) of revpdfprinter.dylib. Future versions might cease doing that.
Since my app doesn't include that code I cannot tell you how many bytes the universal and 64-bit only versions are.I do not know where revpdfprinter.dylib is stored within the app. Perhaps it is at Go to Show Package Contents / Contents / MacOS / revpdfprinter.dylib. If revpdfprinter.dylib is present, you must remove the the 32-bit code from that dynamic library. Sudo lipo -remove i386 -output.
Enable sandboxing for the Mac App Store. Create 'entitlements.plist' in the same directory as the standalone application. All of the executables in your app must be code signed with your Apple Developer ID certificate. Open the application 'Keychain Access' in your Utilities folder. Select the keychain 'login' and the category of 'My Certificates'. In the list should be two:3rd Party Mac Developer Installer: 3rd Party Mac Developer Application: For example:3rd Party Mac Developer Installer: Kee Nethery (CEASNJ1234)3rd Party Mac Developer Application: Kee Nethery (CEASNJ1234)If you have 'Developer ID Application.'
And 'Developer ID Installer.' In the 'Certificates' section within 'KeyChain Access', and no certificates within the 'My Certificates' section, you will need to create the certificates that get stored in 'My Certificates'.In developer.apple.com look for the area 'Certificates, Identifiers and Profiles' also displayed as 'Certificates, IDs and Profiles'. In the upper left, select 'macOS' to create macOS certificates. From that point the path is: macOS / Production / What type of certificate do you need? / Production / Mac App Store / Continue / Mac App Distribution.
You'll create a CSR with your Apple ID email and company name that gets saved to disk. Continue, select the CSR, and it will create a file in your Downloads folder 'macapp.cer'. Run through the process again and select the other choice 'Mac Installer Distribution'. You need both certificates. Continue in the web site and you'll be able to select them and have them be imported into your keychain so that they show up in 'My Certificates'.You will need the 'Application' portion to do the code sign. You will also need Xcode installed with it's utilities to perform the code sign.
Using the above sample, in Terminal, code sign the app and all of the embedded executables inside it: sudo codesign -verbose -deep -force -sign '3rd Party Mac Developer Application: Kee Nethery (CEASNJ1234)'. Create the installer package.
Sudo productbuild -component /Applications -sign '3rd Party Mac Developer Installer: Kee Nethery (CEASNJ1234)' -product.pkgFor that last path, it is the path to the standalone application bundle with the.app suffix replaced by.pkgFor example:LiveCode Projects/myApp.appwould become:LiveCode Projects/myApp.pkgThis will create a properly signed installer package file in the same folder as the application. New AppTo create a new app, in developer.apple.com: App Store Connect / Go to App Store Connect / My Apps / + / New macOS App'Company Name' is the name of your company as shown on your keychain certs, in my instance 'Kee Nethery'Name' is the name of the app without the.app appended to it.Bundle ID: was selectable from a list (no idea where that came from) and it had the name and the bundle ID 'TXF Convert - com.txfconvert.txfconvert'SKU' is whatever you want it to be, it's your internal identifier.
I used 'txfconvert'.Once I created the new macOS app, it was assigned an Apple ID. For example, 'Essentially you are registering a new Bundle ID so that you can then upload your.pkg file that has that Bundle ID.Revise Existing AppTo create a new version, in App Store Connect, select the previously version and hit the '(+) VERSION' button on the left side of the App Store screen. Once you've uploaded the standalone with the Application Loader, select with the (+) next to the 'Build' section header to select the previously uploaded app package.When Apple tells you to fix an error in 2.0 you'll need to increment the version number in the app (for example to 2.0.1) and in App Store Connect. You can just edit the version number in the App Store Connect data display from 2.0 to 2.0.1. Now all the app data belongs to 2.0.1.
Full-featured and powerful image editing app for the Mac.Pixelmator takes full advantage of the latest Mac features and technologies, giving you speedy, powerful tools that let you touch up and enhance images, draw or paint, apply dazzling effects, or create advanced compositions with ease. Once your images are ready, save them to popular image formats, share them via email or social networks, print them, or instantly add them to your Photos library.
Red Grange, Lacks some essentialsI like to create artwork rom scratch and have all of the major programs (like Phosotshop, Illustrator, Painter, Sketchbook Pro and Pixelmator). I like the simplicity of the Pixelmator interface (unlike the unintuitive and exhaustive Photoshop user interface), but Pixelmator lacks 2 VERY essential tools: a decent airbrush tool and a way to create a mask (frisket) to airbrush into “clean areas” (think traditional airbrush work using cut frisket film). Photoshop makes this cumbersome and while Sketchbook Pro is perhaps the most natural and “lifelike” product to use, it also lacks a way to create a “frisket” or mask (Painter was once a decent program but has gone the route of Photoshop and has so many features it requires classes to use). Pixelmator has promise, but needs to add these essential features. I will also say the folks at Pixelmator respond to questions and I am rooting for them to create a new version for artists (and some new tutorials).
Bhyahoo, Too difficult to use for casual userI am always banging my head getting this to work. Other apps it’s easy to do an effect, and I can find the parts in the app to do it, but it never works. I google, I try the online tutorials, and it doesn’t work. I see other people complaining about the same thing. No error message, just no result.It shouldn’t be this hard.
I fired up a different app (named after a tree seed) and found effects and it worked as expected first time (too bad their UI wasn’t as easy to navigate as Pixelmator).If the devs are wanting this to be a photo editing tool for the common person, it needs to be less cryptic. My success rate of getting things to work following their video tutorials is 20%. I just bail and do something else. I love that they have all the videos, but there is a design issue or a UX issue, and I know it’s not just me because I see plenty of other posts online from others saying the same thing. Rehtneug, Tools suddenly stop working, never get fixedI've been using Pixelmator for years, and it has had almost every feature you could possibly want, and at the price it an excellent replacement for Photoshop.
However, some features like the clone stamp tool and text tool and crop tool simply cease to function without any explanation or fix. I've checked to see if others have had these issues and it seems that the clone stamp tool has been out of commission for a while and has never been addressed. Cropping can't be resized, the handles on the edges simple move the selection around. I'm semi-interested in Pixelmator Pro, but I can't find any comparison or list of new features to tell me if it's worth the upgrade.
I get the impression that Pro is just a new UI of the same software, and that Pixelmator is just abandonware at this point.
![]() Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
January 2023
Categories |