Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt applications on new Mac App Store

I have a Qt app that runs on OS X that has potential to go on the new Mac App Store.

I have reviewed the guidelines at https://developer.apple.com/appstore/mac/resources/approval/guidelines.html. I also saw a post here on SO about Java and the AppStore.

Has anyone else considered this with their own apps and whether or not the Qt framework will run afoul of the App police? You still have to stay within the Apple HIG, i.e. no theming and cannot use private APIs.

Still seems like a risky proposition over pure ObjC. Anyone else tempted?

like image 921
J Henzel Avatar asked Dec 02 '10 17:12

J Henzel


People also ask

Is Qt compatible with Mac?

By default, Qt will build for the architecture of your development machine - either x86_64 , or arm64 if you are on an Apple Silicon Mac.

Does Apple use Qt?

The Qt SDK is fully universal, and should run on both Intel and Apple Silicon hardware.

Where is Qt installed Mac?

By default, Qt is configured for installation in the /usr/local/Trolltech/Qt-4.8. 5 directory, but this can be changed by using the -prefix option. Type ./configure -help to get a list of all available options.


2 Answers

My Qt app has today been accepted and is available on the App Store. So the answer is yes, Apple will accept Qt based applications.

Here's some information about my application. It written in C++ and uses Qt v4.7.2 under the LGPL license. The Qt frameworks are included in the app bundle (obviously, as LGPL requires I use dynamic linking instead of static). There are also some other frameworks, from Nikon and Canon, because its an app for remote control of DSLR cameras - see http:www.hartcw.com . These are only available compiled for Intel 32bit, hence this forces my app to also target 32bit, and so I have to use the 32bit Carbon build of Qt.

Regarding writing files to the local hard disk, it does not write anything to the bundle directory, but does write to this directory:

~/Application Support/Hart/Smart Shooter

It also writes Qt GUI state to this file (via the QSettings class)

~/Library/Perferences/com.hartcw.SmartShooter.plist

'Hart' is the company name as registered with Apple, and 'com.hartcw.SmartShooter' is the app identifier name, so I think this is what Apple checks against.

Also there were a couple of things I had to do regarding the plist file, see http://hartcw.com/francis/qt-and-the-mac-app-store

Infact it was accepted first time by Apple! It was in the 'waiting for review' stage for about 10 days, then transitioned to 'in review' for about 4 hours, and then went live on the app store.

like image 154
francis Avatar answered Sep 23 '22 13:09

francis


Using Qt is no problem at all for creating an app for the App Store. All you have to do is to make sure that you are using Qt compiled with Cocoa and not Carbon.

EDIT: I've just found that there may be an issue if your application uses Qt plugins (as this apparently makes Qt write to ~/Library/Preferences/com.trolltech.plist which is outside the 'domain' of an App Store application.)

like image 20
Raphael Avatar answered Sep 25 '22 13:09

Raphael