[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Pygame to Mac App Store (in progress)



Hi,

thanks for sharing.

There is some new work done on SDL for Lion, so you should be able to use that now.  It doesn't use any depreciated stuff anymore, so I guess it should pass if you use that.

There is a plan to do another SDL 1.2 release (1.2.15), so I hope that comes out soon.  But their latest is in the sdl 1.2 hg branch if you'd like to compile it yourself.

cheers,



On Fri, Oct 7, 2011 at 11:04 AM, Keith Nemitz <musenik@xxxxxxxxx> wrote:

Been meaning to post this for a while, but kept getting distracted. Here is the script we use to create a build of The Witch's Yarn for the Mac App Store. Note: I have yet to successfully post the game to the story, because I screwed up the original certs. Then the whole Lion disappointment popped up, and now I'm just waiting for the SDL fix. Then I try another crack at it. Until then here's what been working for us to make the bundle:



# Python script for building AppStore-friendly app bundle

import sys
import os
import subprocess

# build parameters
python = '/Library/Frameworks/Python.framework/Versions/2.5/bin/python'
codesign_cmd = '/usr/bin/codesign'
productbuild_cmd = '/usr/bin/productbuild'
projectname = "The Witch's Yarn"
appname = projectname+".app"
pkgname = projectname+".pkg"
app_signing_identity = "3rd Party Mac Developer Application: Mousechief"
pkg_signing_identity = "3rd Party Mac Developer Installer: Mousechief"

def bundlebuild(project_path):
   print "Building "+projectname+" application bundle..."
   args = [python,'Setup.py','py2app']
   os.chdir(project_path)
   p = subprocess.call(args)
   return p

def codesign(bundle_path):
   print "Codesigning "+projectname+" application bundle..."
   args = [codesign_cmd, '-s', app_signing_identity, bundle_path]
   p = subprocess.call(args)
   return p

def productbuild(bundle_path):
   print "Building "+projectname+" installer package..."
   installdir = '/Applications'
   args = [productbuild_cmd, '--component', bundle_path, installdir, '--sign', pkg_signing_identity, pkgname]
   p = subprocess.call(args)
   return p

def main():
   root_path = os.path.split(os.path.abspath(sys.argv[0]))[0]
   project_path = os.path.join(root_path,"project")
   bundlebuild(project_path)
   bundle_path = os.path.join(project_path,"dist/"+projectname+".app")
   codesign(bundle_path)
   #productbuild(bundle_path)

main()