<div dir="ltr">Hi,<div><br></div><div>As part of my work at Boundless, I manage the code signing of the Mac QGIS.app bundle and package installers. I would like to see this done for the community version as well.</div><div><br></div><div>Currently there is no code signing of drag-drop applications or package installers for QGIS, so users have to switch away from the recommended default setting to allow any installation (see attachment).</div><div><br></div><div>Code signing setup requires:</div><div><br></div><div>* Mac developer account with Apple (~$99 USD/year)</div><div>* Issued certificates for Applications and Installers</div><div>* Signing drag/drop .app bundles and .pkg installers on both 10.7 and 10.9.5+ [0]</div><div><br></div><div>Packages are signed with the 'productsign' tool and application bundles with the 'codesign' tool after certificates are imported into user's Keychain. No use of Xcode.app is required, unless you want to use it to initially request the certificates, though that can all be done online.</div><div><br></div><div>Installers are much easier to code sign than drag/drop .app bundles, since the signing is of an archived payload, whereas everything in the .app bundle needs signed, which make signing bundled utilities like GRASS difficult as they don't follow bundle layout recommendations. I have successfully signed a QGIS.app with GRASS 6 embedded on Mac OSX 10.10, and the methodology used should work for OTB/GRASS7/SAGA/etc.</div><div><br></div><div>For the nightly, I would like to offer a code signed drag/drop QGIS.app with GRASS7 bundled, since it's linked to for the internal plugin.</div><div><br></div><div>Application bundles do not need signed if installed via a .pkg installer, only the installer needs signed. The signing is used by Mac's Gatekeeper sentry software when a user installs something, and is not in play after software is installed.</div><div><br></div><div>The questions are:</div><div><br></div><div>* Should code singing be done? (obviously +1 from me)</div><div>* Whose account should manage the certs? (I have one, though the PSC should probably set one up to be autonomous to packagers)</div><div>* Should it be incorporated in 2.12 packaging? (I think there is plenty of time to do so)</div><div><br></div><div>[0] <a href="https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG205">https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG205</a></div><div><br></div><div>Reference:</div><div>[1] <a href="https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html">https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html</a><br></div><div>[2] <a href="http://successfulsoftware.net/2012/08/30/how-to-sign-your-mac-os-x-app-for-gatekeeper/">http://successfulsoftware.net/2012/08/30/how-to-sign-your-mac-os-x-app-for-gatekeeper/</a></div><div><br></div><div><div><div class="gmail_signature"><br></div><div class="gmail_signature">Regards,</div><div class="gmail_signature"><br>Larry Shaffer<br>Dakota Cartography<br>Black Hills, South Dakota</div></div>
</div></div>