Codesigning for Qt Application developed for Mac OS X
-
Hi everyone,
I developed an application using Qt and XCode under 10.8 OSX . I deploy that application using macdeployqt for other MAC OSX . On a Mavericks (10.9.4), i signed my application. When i verify signature for this application, it contains valid signature with Signature Version 2. But, when i verify this signed application on Yosemite(10.10), it shows that this application is not signed. Error message is following:
bq. code object is not signed at all
In subcomponent: /Users/Himanshu/Desktop/Sample/Sample.app/Contents/Frameworks/QtCore.framework.
Command /usr/bin/codesign failed with exit code.Please tell me the reason for this error and solution also.
Thanks in advance. -
do you codesign with the --deep option? As in:
@codesign --deep -v -f -s "My Company" "myApp.app"
@
You'll get that error if you don't, a change in 10.10 handling of signature.Now, if you try to sign with --deep on any application build with Qt up to 5.3.1, the signature will fail because of a bug in macdeployqt.
After macdeployqt, for any Qt framework that contains a "Contents/Info.plist", you have to copy this Info.plist in the deployed framework 's Resources folder.
example:
@cp /usr/local/Qt-5.3.1/lib/QtCore.framework/Contents/Info.plist myApp.app/Contents/Frameworks/QtCore.framework/Resources/.
cp /usr/local/Qt-5.3.1/lib/QtGui.framework/Contents/Info.plist myApp.app/Contents/Frameworks/QtGui.framework/Resources/.
...
@
repeat for all deployed Qt's framework.I hope this and QTBUG-40449 are fixed in the coming 5.3.2.