So if you are shipping software for the Mac, you really need to sign it.Īpple fanboys will tell this is a sensible way for Apple to control software quality. This could have a big effect on your conversion rate on Mac. Apple being Apple, Gatekeeper defaults to only allowing users to run software they have downloaded off the Internet if it has been signed. This is the new Mac Gatekeeper system in action. Or they need to right/Ctrl click and see another scary warning. To run unsigned software they need to go into Mac OS X Preferences>Security & Privacy>General and change Allow applications downloaded from Mac App store and identified developers to Anywhere: If a prospective customer downloads your software onto Mac OS X 10.8 and it hasn’t been signed, they will see a scary warning: So you are going to have to start signing using 10.9, whether you like it or not. … Apps signed with v2 signatures will work on older versions of OS X. To ensure your apps will run without warning on updated versions of OS X, they must be signed on OS X Mavericks 10.9 or later (v2 signatures). Users may receive a Gatekeeper warning and will need to exempt your app to continue using it. Signatures created with OS X Mountain Lion 10.8.5 or earlier (v1 signatures) will be obsoleted and Gatekeeper will no longer recognize them. On the subject of signing for Mac, Apple recently sent out an email stating: You can avoid this by using cp -R instead. So you end up with 3 copies of each framework library. It turns out that the cp -r commands in my script don’t preserve symbolic links. The first time I ran my script I ended up with a whopping 50MB. Note that you can just find and replace all the ‘5’ characters in the script by ‘4’ if you are still using Qt4. In the above rebundle.py is a Python script written by some public spirited individual that can be downloaded from github (thank you, ‘kingcheez’). This is all stuck it all in a bash script, which I can pretty much forget about it (until Apple break something else). dmg image file complete with licence and background image. (Sorry about the small font, but I wanted to avoid confusing line wraps). # the 2 lines below are just for verification/diagnostics app bundle (including frameworks and plugins)Ĭodesign -deep -force -verify -verbose -sign "Developer ID Application: ". # optionally delete unwanted framework and plugin folders, e.g.: So here is the basic process to build and sign your Qt. ![]() ![]() The good news is that Apple have also made the codesign command easier with a -deep option to traverse and sign the whole bundle in a single command. I managed to work out how to get it working again after a bit of digging around. The problem appears to be that the directory structure of the app bundle has changed and the Qt4 macdeployqt command does not conform to the new layout (I believe this is also the case for Qt5). Those Apple chaps do love to break stuff. It all worked fine until I upgraded to Mac OS X 10.9.5, which broke my signing script. I have written previously about signing Qt applications for Mac OS X.
0 Comments
Leave a Reply. |