Automatically generate and renew your push notification profiles
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 simply running
pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed.
pem does not cover uploading the file to your server.
To automate iOS Provisioning profiles you can use sigh.
Get in contact with the developer on Twitter: @FastlaneTools
pem is part of fastlane: The easiest way to automate beta deployments and releases for your iOS and Android apps.
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:
Note about empty
p12 passwords and Keychain Access.app
pem will produce a valid
p12 without specifying a password, or using the empty-string as the password.
While the file is valid, Mac OSX's Keychain Access will not allow you to open the file without specifying a passphrase.
Instead, you may verify the file is valid using OpenSSL:
openssl pkcs12 -info -in my.p12
pem --help to get a list of available environment variables.
How does it work?
pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.
How is my password stored?
fastlane: The easiest way to automate beta deployments and releases for your iOS and Android apps
deliver: Upload screenshots, metadata and your app to the App Store
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
spaceship: Ruby library to access the Apple Dev Center and iTunes Connect
pilot: The best way to manage your TestFlight testers and builds from your terminal
boarding: The easiest way to invite your TestFlight beta testers
gym: Building your iOS app has never been easier
scan: The easiest way to run tests of your iOS and Mac app
match: Easily sync your certificates and profiles across your team using git
Use the 'Provisioning Quicklook plugin'
Download and install the Provisioning Plugin.
It will show you the
pem files like this:
Please submit an issue on GitHub and provide information about your setup
Code of Conduct
Help us keep
pem open and inclusive. Please read and follow our Code of Conduct.
This project is licensed under the terms of the MIT license. See the LICENSE file.
This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.