Qt has a command-line tool called macdeployqt6 that assembles a full Macintosh app. It adds 135 MB of their code inside the app bundle, and does some other tweaking.
We got the Mac deploy to work this week: it made an accounting app that will run on any Mac that’s M1 or newer. Except, it didn’t run, because newer Macs require code signing. That’s a whole ’nother command-line process. The first step is for Apple to verify that TurtleSoft LLC is legit. We’re working on that now.
Intel Macs require a different app, built with an older version of Qt. Those can run on older OS versions without code signing, but so far all attempts to deploy the new accounting software for Intel have failed. That first success was one of many tries, and we didn’t write down exactly what it took to get there.
Back in the 80’s, almost all PCs ran MS-DOS. It gave a text prompt, and you typed in instructions. Command lines are fussy: one wrong character and it fails or goes haywire. There’s no Undo. Type in del *.*, hit the enter key and you will be very sad. Working with files is extra hard: they need to be in the right place, with the correct path to get there.
Back then, our staff had to explain many times why the GUI on a Mac was better. Just click and drag. Harder to make small stupid mistakes. Less brain-draining. Undo saves your ass. Despite all that, the Mac was a tough sell.
These days it’s opposite land. Windows GUI has caught up, and Microsoft users almost never see a C prompt. Mac OS is now Unix-based, and command-line at heart. Most Mac users can stick with GUI apps, but for some tasks you’ll need to type into Terminal. For example, to add spacers to the Dock you type or copy/paste:
defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' killall Dock
Software developers have it worse. Nearly all utilities are command-line. It stinks. Online instructions help a little, but not enough. They don’t know the readers exact setup, so they show stuff like:
../%{JS: Util.asciify("build-%{Project:Name}-%{Kit:FileSystemName}-%{BuildConfig:Name}")}
Users must figure what to put in for Name, FileSystemName and Name. And yes, that’s a real step and some are worse. The process makes C++ code seem like poetry. After a couple hours, it all gets blurry and looks like A$sdfas8%ferw#rr33@34bre/grgle.
This is tax season. Between the above, Apple, and IRS instruct@!#%ions , it probably will be a few weeks until something is ready to download. So far, no experienced subcontractors want to deal with the final deploy. They’ve all been there, suffered that.
The only good news is that once the process works a few times, we can set up scripts and 1/2/3 instructions. From then on, future builds are just a matter of text copy-paste in proper order. Less painful. We hope.
Dennis Kolva
Programming Director
TurtleSoft.com