I periodically release a dmg for a Python/wxPython app with py2app, and it has been working great. I only have access to a Snow Leopard machine and I would like to ensure that my app works on as many versions of OS X as possible. In the past, I have found that an app created on Snow Leopard worked on Leopard but did not work on Tiger or earlier.
I have two questions:
(1) Can I release a single app that will work on Tiger, Leopard, Snow Leopard, and hopefully Lion? If so, how?
(2) Does it matter if I use 32 bit or 64 bit Python/wxPython?
Use a Python from one of the 32-bit-only installers from python.org. They are built as 32-bit i386 and ppc using a deployment target of OS X 10.3 so they will run on all Apple systems shipped that support any version of OS X 10.3 through 10.6 (and should run on OS X 10.7 when released). Any C extension modules built with its Distutils (setup.py
) will be fine. If they need any 3rd-party C libraries that are not included with Mac OS X, you need to be careful to build and install them in a compatible manner. The most important thing is to build them as universal builds with -arch i386
and -arch ppc
. Most of the most common libs these days can be made to do that without too much trouble. Also, to be safe, build them with gcc-4.0
and MACOSX_DEPLOYMENT_TARGET=10.3
(or 10.4
if that doesn't work). You'll need Xcode 3, not the newer Xcode 4, and need to install the optional 10.4 SDK from Xcode 3. Use a wxPython binary installer that meets those criteria and you should be good to go.