[Development] Important OSX 10.9.5 & 10.10 codesign changes

Adam Strzelecki ono at java.pl
Thu Sep 18 19:31:33 CEST 2014


Briefly - current Qt5 frameworks bundles structure is invalid & cannot be code signed anymore in 10.9.5 & 10.10. Also 

Please have a look at Apple's recent TN2206:

	https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG205

And reference for proper bundle structure:

	https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

More details:

(1) Qt Creator signature is rejected

	$ spctl -avv /Applications/Qt\ Creator.app
	/Applications/Qt Creator.app: rejected
	source=obsolete resource envelope
	origin=Developer ID Application: Digia Plc

(2) bundles & Qt SDK built QtXXX.framework structure is invalid: Info.plist is expected to be in Resources/ not in Contents/. Resources/ must be present and need to be symlinked to bundle's root.

PRESENT:

	QtCore.framework/
		Contents/
			Info.plist
		QtCore    -> Versions/Current/QtCore
		Versions/
			Current -> 5
			5/
				QtCore

Causing:
$ codesign --deep -f -s 'Developer ID' -vvv /tmp/QtCore.framework
/tmp/QtCore.framework: unsealed contents present in the bundle root

EXPECTED:

	QtCore.framework/
		QtCore    -> Versions/Current/QtCore
		Resources -> Versions/Current/Resources
		Versions/
			Current -> 5
			5/
				QtCore
				Resources/
					Info.plist

Once bundle layout is changed as above then codesign succeeds.

I think this deserves attention because it will likely cause all existing Qt apps to be rejected by Gatekeeper in 10.9.5 & 10.10.

Regards,
-- 
Adam




More information about the Development mailing list