[Pyobjc-dev] py2app builds fail leopard codesign integrity checks
Brought to you by:
ronaldoussoren
From: James R E. <ea...@ba...> - 2007-11-18 21:10:55
|
Hi folks, It appears that PyObjC applications built with py2app on Leopard fail the codesign integrity checks. I have an application that uses a simple ObjC wrapper around the SecKeychain{Add,Find}GenericPassword methods. When I build and run the application from an XCode project, the application runs fine, adding and finding passwords on the keychain. When I build and run the same project using py2app, Leopard gripes when reading from the Keychain: "KeychainError - code or signature modified" At first I thought it might be the stripping phase, since I see the following warning when building, but the keychain error arises even if I pass --no-strip to py2app. In my case, it's easy enough to work- around by using XCode, but is this a known bug in py2app or something I might be doing wrong. (If it's the latter, I'd be happy to provide a small demonstration app, if necessary.) Thanks! James % python setup.py py2app [...] /usr/bin/strip: changes being made to the file will invalidate the code signature in: /Users/eaganj/Projects/PyLogin Authenticator/dist/ Login Authenticator.app/Contents/MacOS/LoginAuthenticator (for architecture ppc7400) /usr/bin/strip: changes being made to the file will invalidate the code signature in: /Users/eaganj/Projects/PyLogin Authenticator/dist/ Login Authenticator.app/Contents/MacOS/LoginAuthenticator (for architecture i386) /usr/bin/strip: changes being made to the file will invalidate the code signature in: /Users/eaganj/Projects/PyLogin Authenticator/dist/ Login Authenticator.app/Contents/MacOS/python (for architecture ppc7400) /usr/bin/strip: changes being made to the file will invalidate the code signature in: /Users/eaganj/Projects/PyLogin Authenticator/dist/ Login Authenticator.app/Contents/MacOS/python (for architecture i386) /usr/bin/strip: for architecture ppc64 object: /Users/eaganj/Projects/ PyLogin Authenticator/dist/Login Authenticator.app/Contents/Frameworks/ Python.framework/Versions/2.5/Python malformed object (load command 3 cmdsize not a multiple of 8) stripping saved 13880 bytes (16642820 / 16656700) --------- setup.py: --------- from distutils.core import setup import py2app from plistlib import Plist SHORT_VERSION = '1.0' BUNDLE_VERSION = '12' plist = Plist.fromFile('Info-py2app.plist') plist.update(dict( CFBundleShortVersionString=SHORT_VERSION, CFBundleVersion=BUNDLE_VERSION, )) py2app_options = dict( # iconfile='Login Authenticator.icns', plist=plist, frameworks=['KeychainServices.framework'], ) setup( app=['main.py'], data_files=['MainMenu.nib'], options=dict( py2app=py2app_options ) ) -- There are more of them than us. -- Herb Caen |