Deciding between Xcode and QtCreator for packaging PyQt apps for OSX

Suppose you have pyqtdeploy’ed a PyQt project to OSX.  Now you want to package it for distribution.  You are trying to decide what packaging tools to use.

What pyqtdeploy produces

  • .pro file ( a qmake project)
  • .app bundle (a minimal package for the Mac platform)
  • a static built executable (that includes the Python interpreter and all dependencies except Qt libraries/frameworks)

Packaging Tool Choices

  • Xcode
  • QtCreator (and qmake)
  • your own scripts invoking qmake and Xcode command line tools
  • other third party packagers

Advantages of switching to Xcode

  • Xcode understands Mac packaging better
  • Xcode is better integrated with the Mac Store
  • Xcode is more GUI friendly (drag and drop, point-and-click, forms)

Xcode understands Mac packaging better

  • code signing
  • sandboxing
  • icons and document types (mimetypes)
  • the bundle (package) structure

Xcode is better integrated with the Mac Store

  • it remembers your AppleID
  • it knows the steps to submit (validating, submitting a debug version, final uploading)
  • it knows how to validate
  • the Mac Store won’t accept other packagers

Disadvantages of switching to Xcode

  • learning curve
  • not cross-platform (whatever you learn doesn’t apply to other platforms)

Sandboxing as a determiner

The store requires sandboxing of most apps.

Otherwise, sandboxing is optional.  It’s benefit is that it gives more comfort to your users, because it doesn’t give a warning when the app is installed (used?)

Summary

If you are distributing in the Mac Store you probably must use Xcode.

Otherwise, using Xcode is better only if you prefer a more user-friendly, less scripted process.

 

 

 

 

Advertisements

One thought on “Deciding between Xcode and QtCreator for packaging PyQt apps for OSX

  1. Pingback: Deploying PyQt Python Qt apps cross platform using pyqtdeploy | plashless

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s