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
To automate iOS Provisioning profiles you can use sigh.
Felix Krause (@KrauseFx) the developer of
Sebastian Mayr (@sebmasterkde) who implemented the download mechanism of signing certificates
Alexander Schuch (@schuchalexander) who automated the generation of the signing request
PEM is part of fastlane: connect all deployment tools into one streamlined workflow.
Well, it's actually just one: Generate the
pem file for your server.
Check out this gif:
sudo gem install pem
Make sure, you have the latest version of the Xcode command line tools installed:
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.
If you already have a push certificate enabled, which is active for at least 30 more days,
PEM will not create a new certificate. If you still want to create one, use the
You can pass parameters like this:
pem -a com.krausefx.app -u username
If you want to generate a development certificate instead:
Set a password for your
pem -p "MyPass"
You can specify a name for the output file:
pem -o my.pem
To get a list of available options run:
In case you prefer environment variables:
PEM_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 latest
aps_production.cer. See: developer_center.rb.
- Generating all the necessary profiles and files to prepare the finished
.pemfile. See: cert_manager.rb.
.certSigningRequestfile will be generated in signing_request.rb
How is my password stored?
fastlane: Connect all deployment tools into one streamlined workflow
deliver: Upload screenshots, metadata and your app to the App Store using a single command
snapshot: Automate taking localized screenshots of your iOS app on every device
frameit: Quickly put your screenshots into the right device frames
sigh: Because you would rather spend your time building stuff than fighting provisioning
produce: Create new iOS apps on iTunes Connect and Dev Portal using the command line
cert: Automatically create and maintain iOS code signing certificates
codes: Create promo codes for iOS Apps using the command line
Use the 'Provisioning Quicklook plugin'
Download and install the Provisioning Plugin.
It will show you the
pem files like this:
- If there is a technical problem with
PEM, submit an issue.
- I'm available for contract work - drop me an email: [email protected]
This project is licensed under the terms of the MIT license. See the LICENSE file.
- 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