fastlane
deliver • snapshot • frameit • PEM • sigh • produce • cert • codes
PEM - Maintain your push certificates
Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server?
PEM does all that for, just by running pem.
To automate iOS Provisioning profiles you can use sigh.
Felix Krause (@KrauseFx) the developer of PEM
Sebastian Mayr (@sebmasterkde) who implemented the download mechanism of signing certificates
Alexander Schuch (@schuchalexander) who automated the generation of the signing request
Features • Installation • Usage • How does it work? • Tips • Need help?
PEM is part of fastlane: connect all deployment tools into one streamlined workflow.
Features
Well, it's actually just one: Generate the pem file for your server.
Check out this gif:

Installation
sudo gem install pem
Make sure, you have the latest version of the Xcode command line tools installed:
xcode-select --install
Usage
pem
Yes, that's the whole command!
This does the following:
- Create a new signing request
- Create a new push certification
- Downloads the certificate
- Generates a new
.pemfile in the current working directory, which you can upload to your server
PEM will never revoke your existing certificates.
You can pass parameters like this:
pem -a com.krausefx.app -u username
If you want to generate a development certificate instead:
pem --development
To get a list of available options run:
pem --help
Like this tool? Be the first to know about updates and new fastlane tools
Environment Variables
In case you prefer environment variables:
PEM_USERNAMEPEM_APP_IDENTIFIERPEM_TEAM_IDPEM_SAVE_PRIVATEKEY- Set to "1" to save the private RSA key
How does it work?
There are 2 actions involved:
- Accessing the
iOS Dev Centerto download the latestaps_production.cer. See: developer_center.rb. - Generating all the necessary profiles and files to prepare the finished
.pemfile. See: cert_manager.rb. - The
.certSigningRequestfile will be generated in signing_request.rb
How is my password stored?
PEM uses the password manager from fastlane. Take a look the CredentialsManager README for more information.
Tips
fastlane Toolchain
fastlane: Connect all deployment tools into one streamlined workflowdeliver: Upload screenshots, metadata and your app to the App Store using a single commandsnapshot: Automate taking localized screenshots of your iOS app on every deviceframeit: Quickly put your screenshots into the right device framessigh: Because you would rather spend your time building stuff than fighting provisioningproduce: Create new iOS apps on iTunes Connect and Dev Portal using the command linecert: Automatically create and maintain iOS code signing certificatescodes: Create promo codes for iOS Apps using the command line
Like this tool? Be the first to know about updates and new fastlane tools
Use the 'Provisioning Quicklook plugin'
Download and install the Provisioning Plugin.
It will show you the pem files like this:

Need help?
- If there is a technical problem with
PEM, submit an issue. - I'm available for contract work - drop me an email: [email protected]
License
This project is licensed under the terms of the MIT license. See the LICENSE file.
Contributing
- Create an issue to discuss about your idea
- Fork it (https://github.com/KrauseFx/pem/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request