Deliver • Snapshot • FrameIt • PEM • Sigh
Pem - Maintain your push certificates
Tired of manually creating and maintaining your push notification profiles? Tired of generating a pem
file for your server?
PEM
does all that for, just by running pem
.
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?
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
Install phantomjs (this is needed to control the Apple Developer Portal)
brew update && brew install phantomjs
If you don't already have homebrew installed, install it here.
Usage
pem
Yes, that's the whole command!
This does the following:
- Verifies the production push certificate looks alright
- Renews the push certificate in case it's necessary
- Downloads the certificate
- Generates a new
.pem
file in the current working directory, which you can upload to your server
You can pass parameters like this:
pem -a at.felixkrause.app -u username
If you want to generate a development certificate instead:
pem --development
Environment Variables
In case you prefer environment variables:
PEM_USERNAME
PEM_APP_IDENTIFIER
PEM_CERT_SIGNING_REQUEST
in case you want to pass your own signing request file
How does it work?
There are 2 actions involved:
- Accessing the
iOS Dev Center
to download the latestaps_production.cer
. See: developer_center.rb. - Generating all the necessary profiles and files to prepare the finished
.pem
file. See: cert_manager.rb.PEM
will create a temporary keychain calledPEM.keychain
and use that to generate the necessary profiles. That meansPEM
will not pollute your default keychain. - The
.certSigningRequest
file will be generated in signing_request.rb
How is my password stored?
PEM
uses the password manager from Deliver
. Take a look the Deliver README for more information.
Tips
Other helpful tools
Check out other tools in this collection to speed up your deployment process:
deliver
: Deploy screenshots, app metadata and app updates to the App Store using just one commandsnapshot
: Create hundreds of screenshots of your iPhone app... while doing something elseFrameIt
: Want a device frame around your screenshot? Do it in an instant!sigh
: Because you would rather spend your time building stuff than fighting provisioning.
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. Runpem --trace
to get the stacktrace. - 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