Code Signing. The very mention of certificates or provisioning profiles can send chills up an iOS engineer's spine.
We've all been there. Just finished up a great first pass at a new feature, or finally ready to submit to the App Store and BAM! We're stopped in our tracks by a confusing error related to code signing.
Most iOS teams have separate code signing identities for each member. This means most iOS teams have tons of provisioning profiles, probably lots of duplicates, invalid ones, etc.
Adding new devices or renewing certificates can be a huge hassle, and only makes on boarding new team members slower.
We keep this single identity (and it's associated provision profiles) in one central location.
match automatically syncs our iOS keys and profiles using a simple git repository. It handles everything (i.e. creating certificates and profiles), while we retain complete control.
Let's setup match for a project. We'll start by creating a new Github repository to hold our certificates, profiles, etc.
We'll call it
certificates and make absolutely sure it's set to be private!
Then, we'll install match locally:
gem install match
Next, we'll go into our project's main directory and run:
We'll be asked for the URL of the repository we created earlier, then a
Matchfile will be created to hold a few settings.
Next we'll run:
match will create a new certificate and provisioning profile, and store them in our Github repo. They'll all be encrypted using openssl! 🔐
In the future, when we get a new machine for example, we will only need to run that one command to pull down everything and install it all locally. Incredible. Setting up new machines or team members has never been easier (or faster 🚗💨)!