29 December 2014
iOS Build Improvements
Provisioning profiles and signing certificates are enough to make anyone’s screen feel like something from a ’90s sci-fi flick.
We’ve been delving into their innards and have come up with some improvements to the way code signing works. One of the headaches in signing apps happens when there are multiple identities with the same name in the Keychain. It’s fairly easy to end up with multiple identities with the same name due to things like expired certificates and Apple doesn’t give you much control over the names of developer and distribution certificates. Previously, the way to work around this was to completely clear out Keychain Access and start over. The solution to this to use a fingerprint which uniquely identifies a certificate which allows the specific identity referred to by a certificate embedded in a provisioning profile to be used rather than just one with the same name. This is how Xcode does it and now CoronaSDK is fingerprint-enabled too.
The practical upshot of all this is that those weird instances where an iOS build seems to work but the app can’t be installed on a device because “The application does not have a valid signature” should be a thing of the past. It’s unlikely but possible that a few folks might now see an error about a missing certificate because they were rolling the dice with the Keychain and getting lucky and signing their app with a different identity than they thought they were and things just happened to work out. A quick visit to the Xcode preferences and a refresh of the Accounts pane should fix things once and for all.
While we had the hood up and the engine out we took the opportunity to fix some nagging issues with iOS builds such as mismatches between provisioning profiles and app entitlements for things like beta-reports-active and get-task-allow which should result in smoother TestFlight distributions. We also improved error reporting during builds so you now see what actually went wrong if a build goes side-ways. It’s the little things!
All of this goodness is available to subscribers in Daily Build 2014.2526