###### 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 you, just by simply running _pem_. _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 [match](https://github.com/fastlane/fastlane/tree/master/match). -------

FeaturesUsageHow does it work?TipsNeed help?

-------
pem is part of fastlane: The easiest way to automate beta deployments and releases for your iOS and Android apps.
# Features Well, it's actually just one: Generate the ``_pem_`` file for your server. Check out this gif: ![img/actions/PEMRecording.gif](/img/actions/PEMRecording.gif) # Usage fastlane 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 ```.pem``` file in the current working directory, which you can upload to your server Note that ``_pem_`` will never revoke your existing certificates. _pem_ can't download any of your existing push certificates, as the private key is only available on the machine it was created on. 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 `force`: fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development Set a password for your `p12` file: fastlane pem -p "MyPass" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem ### 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, the Mac'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 If you need the `p12` in your keychain, perhaps to test push with an app like [Knuff](https://github.com/KnuffApp/Knuff) or [Pusher](https://github.com/noodlewerk/NWPusher), you can use `openssl` to export the `p12` to _pem_ and back to `p12`: % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter PEM pass phrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools) ## Environment Variables Run `fastlane action pem` to get a list of available environment variables. # How does it work? _pem_ uses [spaceship](https://spaceship.airforce) to communicate with the Apple Developer Portal to request a new push certificate for you. ## How is my password stored? ``_pem_`` uses the [password manager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from _fastlane_. Take a look the [CredentialsManager README](https://github.com/fastlane/fastlane/tree/master/credentials_manager) for more information. # Tips ## Use the 'Provisioning Quicklook plugin' Download and install the [Provisioning Plugin](https://github.com/chockenberry/Provisioning). It will show you the ``_pem_`` files like this: ![img/actions/QuickLookScreenshot.png](/img/actions/QuickLookScreenshot.png)