I was going to ask a question about code signing , but I'm happy to report a solution instead!

I am currently developing under Mavericks and have a py33-pyqt4 application which I have 'frozen' into an app using cx_Freeze 4.3.2 (installed with PIP). I recently joined the Mac Developer Program in order to be able to code sign my application. After much pain and suffering I was eventually able to sign my app successfully. I think I had to sign just about every file in the bundle, including the .pyc files within library.zip and even .png and .jpg files, but I got there in the end. I added it to a .zip archive, uploaded it to my webpage, and the download worked fine; just a warning asking if I wanted to open an application downloaded from the Internet.

Then, I created a .dmg image containing my app, but when I downloaded and tried to open it I was warned that it was damaged. More pain and suffering ensued, but the solution was pretty straightforward. I first had to create a read-write .dmg image containing my app, code-sign the app inside the .dmg and then convert the image to read-only after that. (I signed and verified the app before placing it in the .dmg and then resigned-it after it was added.) I'm using "DMG Architect" from the App Store, but I don't think that matters to the process.

I'm looking forward to cx_Freeze 4.3.3 when it becomes available and seeing how well it handles code-signing!

Best regards,
Tim Grove

from https://developer.apple.com/library/mac/technotes/tn2206/_index.html:

*Shipping your Signed Code*

Code signing uses extended attributes. If the extended attributes are lost then the program's identity will be break. Thus, when you ship your program, you must use a mechanism that preserves extended attributes.

One way to guarantee preservation of extended attributes is by packing up your signed code in a read-write disk image (DMG) file before signing and then, after signing, converting to read-only. You should also be careful to not move your application from a system later than Mac OS X 10.3 to a system at or earlier than Mac OS X 10.3 and then back to a system later than MAc OS 10.3 again as it will drop the extended attributes following that transport pattern. You probably don't need to use a disk image until the final package stage so another less heavy-handed method would be to use ZIP files.

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
cx-freeze-users mailing list
cx-freeze-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cx-freeze-users

Reply via email to