Git Product home page Git Product logo

pem's People

Contributors

aafa avatar carlosefonseca avatar craigsiemens avatar esnick avatar jinjorge avatar koenpunt avatar krausefx avatar mathcarignani avatar mfurtak avatar milch avatar ohayon avatar pmairoldi avatar readmecritic avatar shrinkrayio avatar snatchev avatar vpolouchkine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pem's Issues

Issue if wrong password entered

Crash with InvalidUserCredentialsError if user enters wrong password. User not prompted for correct password again unless keychain item removed.

I recommend pem prompt the user for a new password if a InvalidUserCredentialsError is detected.

unable to load certificate

Hi Felix,

tried pem with multi user support today but got this error

INFO [2014-12-03 17:02:03.15]: Successfully downloaded latest .cer file.
openssl x509 -inform der -in '/tmp/PEM//aps_production_de.my-company.app.cer' -out /tmp/PEM/pem_temp.pem
unable to load certificate
140735304848208:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140735304848208:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509
error: No such file or directory - /tmp/PEM/pem_temp.pem. Use --trace to view backtrace

App with bundleId but no iTunes Connect App (Enterprise)

--- EDITED -----

Wrong issue, this feature is working fine.
Sorry for the inconvenience.

--- EDITED -----

Hi,

I have an app created in ios dev panel (the one along certificates) with its bundle ID defined BUT I don't have this app in iTunes Connect, as it's an enterprise app and won't be in the store.

When running 'pem', I'm getting the following error:
"Could not find app with bundle id 'BUNDLE_ID_HERE' "

Is there a possibility to change this so it works with enterprise apps?

Thanks.

Creating push certificate fails but works

Hi

I've seen this happen a couple times. Calling pem a second time seems to work.

18:50:33 CarlosMBP:~$ pem -a "$AID" -u "$iTC_USER"
INFO [2015-02-24 18:50:50.78]: Refreshing push notification profiles for app 'com.company.app'
INFO [2015-02-24 18:50:53.06]: Login into iOS Developer Center
INFO [2015-02-24 18:51:06.46]: Login successful
WARN [2015-02-24 18:51:20.02]: Push for app 'com.company.app' is disabled. This has to change.
WARN [2015-02-24 18:51:20.05]: Creating push certificate for app 'com.company.app'.
DEBUG [2015-02-24 18:51:43.79]: ["/Users/carlos/.gems/gems/fastlane_core-0.1.4/lib/fastlane_core/developer_center/developer_center_helper.rb:63:in `wait_for_elements'", "/Users/carlos/.gems/gems/pem-0.3.5/lib/pem/developer_center.rb:72:in `create_push_for_app'", "/Users/carlos/.gems/gems/pem-0.3.5/lib/pem/developer_center.rb:27:in `fetch_cer_file'", "/Users/carlos/.gems/gems/pem-0.3.5/lib/pem/cert_manager.rb:12:in `run'", "/Users/carlos/.gems/gems/pem-0.3.5/bin/pem:37:in `block (2 levels) in run'", "/Users/carlos/.gems/gems/commander-4.3.0/lib/commander/command.rb:179:in `call'", "/Users/carlos/.gems/gems/commander-4.3.0/lib/commander/command.rb:179:in `call'", "/Users/carlos/.gems/gems/commander-4.3.0/lib/commander/command.rb:154:in `run'", "/Users/carlos/.gems/gems/commander-4.3.0/lib/commander/runner.rb:421:in `run_active_command'", "/Users/carlos/.gems/gems/commander-4.3.0/lib/commander/runner.rb:81:in `run!'", "/Users/carlos/.gems/gems/commander-4.3.0/lib/commander/delegates.rb:15:in `run!'", "/Users/carlos/.gems/gems/pem-0.3.5/bin/pem:50:in `run'", "/Users/carlos/.gems/gems/pem-0.3.5/bin/pem:71:in `<top (required)>'", "/Users/carlos/.gems/bin/pem:23:in `load'", "/Users/carlos/.gems/bin/pem:23:in `<main>'"]
/Users/carlos/.gems/gems/fastlane_core-0.1.4/lib/fastlane_core/developer_center/developer_center_helper.rb:54:in `wait_for': Couldn't find '.file-input.validate' after waiting for quite some time (FastlaneCore::DeveloperCenter::DeveloperCenterGeneralError)
    from /Users/carlos/.gems/gems/fastlane_core-0.1.4/lib/fastlane_core/developer_center/developer_center_helper.rb:63:in `wait_for_elements'
    from /Users/carlos/.gems/gems/pem-0.3.5/lib/pem/developer_center.rb:72:in `create_push_for_app'
    from /Users/carlos/.gems/gems/pem-0.3.5/lib/pem/developer_center.rb:27:in `fetch_cer_file'
    from /Users/carlos/.gems/gems/pem-0.3.5/lib/pem/cert_manager.rb:12:in `run'
    from /Users/carlos/.gems/gems/pem-0.3.5/bin/pem:37:in `block (2 levels) in run'
    from /Users/carlos/.gems/gems/commander-4.3.0/lib/commander/command.rb:179:in `call'
    from /Users/carlos/.gems/gems/commander-4.3.0/lib/commander/command.rb:179:in `call'
    from /Users/carlos/.gems/gems/commander-4.3.0/lib/commander/command.rb:154:in `run'
    from /Users/carlos/.gems/gems/commander-4.3.0/lib/commander/runner.rb:421:in `run_active_command'
    from /Users/carlos/.gems/gems/commander-4.3.0/lib/commander/runner.rb:81:in `run!'
    from /Users/carlos/.gems/gems/commander-4.3.0/lib/commander/delegates.rb:15:in `run!'
    from /Users/carlos/.gems/gems/pem-0.3.5/bin/pem:50:in `run'
    from /Users/carlos/.gems/gems/pem-0.3.5/bin/pem:71:in `<top (required)>'
    from /Users/carlos/.gems/bin/pem:23:in `load'
    from /Users/carlos/.gems/bin/pem:23:in `<main>'

18:51:44 CarlosMBP:~$ pem -a "$AID" -u "$iTC_USER"
INFO [2015-02-24 18:51:52.35]: Refreshing push notification profiles for app 'com.company.app'
INFO [2015-02-24 18:51:54.65]: Login into iOS Developer Center
INFO [2015-02-24 18:52:07.21]: Login successful
INFO [2015-02-24 18:52:20.77]: Push for app 'com.company.app' is enabled
WARN [2015-02-24 18:52:20.77]: Creating push certificate for app 'com.company.app'.
INFO [2015-02-24 18:52:23.82]: Creating a signing certificate for you.
INFO [2015-02-24 18:52:24.00]: Successfully generated .certSigningRequest at path '/tmp/PEM/PEMCertificateSigningRequest.certSigningRequest'
DEBUG [2015-02-24 18:52:24.04]: Waiting for iTC to generate the profile
DEBUG [2015-02-24 18:52:26.06]: Waiting for iTC to generate the profile
DEBUG [2015-02-24 18:52:28.06]: Waiting for iTC to generate the profile
DEBUG [2015-02-24 18:52:30.06]: Waiting for iTC to generate the profile
DEBUG [2015-02-24 18:52:32.07]: Waiting for iTC to generate the profile
INFO [2015-02-24 18:52:34.08]: Going to download the latest profile
INFO [2015-02-24 18:52:36.08]: Downloading URL: 'https://developer.apple.com/account/ios/certificate/certificateContentDownload.action?displayId=XXXXXXX&type=XXXXXXX'
INFO [2015-02-24 18:52:37.06]: Successfully downloaded latest .cer file to '/tmp/fastlane_core/aps_production_com.company.app.cer'
openssl x509 -inform der -in '/tmp/fastlane_core/aps_production_com.company.app.cer' -out /tmp/PEM/pem_temp.pem
./production_com.company.app.pem

18:52:37 CarlosMBP:~$

`mkdir': Operation not permitted - Please help !

in terminal ...
sudo gem install pem ... ok
xcode ... ok
$ pem
... Phantomjs does not appear to be installed in /Users/xxxx/.phantomjs/1.9.8/darwin/bin/phantomjs, installing!
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in `mkdir': Operation not permitted - /Users/xxx/.phantomjs (Errno::EPERM)

Using exitsting private key

Hello. Is it possible to add path to existing private key as option in pem? I think it is good to have one private key file for all certificates in account.

pem cannot create development push cert without --force

If you create a distribution push cert first using pem, and then try using the -d or --development flag on a second run to create the development push certificate, pem will advise that an existing push notification profile already exists and to use force if you still want to create one. Shouldn't force only be necessary to create one that will overwrite the existing? No development push cert exists yet.

empty p12 password

Hi,

I'd like to use an empty password when creating the certificate; I assume I should use the -p param, but how to properly set it to use an empty password?

SSL Error on push using PEM development certificate

I generated a PEM certificate using the instructions in the README and all seemed to work ok. However, when I try to push the notification using the pem development certificate if receive the following error in my terminal.

This is with the ruby houston gem:

/Users/Kevin/.rvm/gems/ruby-2.1.2/gems/houston-2.2.1/lib/houston/connection.rb:42:in `initialize': SSL_CTX_use_PrivateKe
y: key values mismatch (OpenSSL::SSL::SSLError)
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/houston-2.2.1/lib/houston/connection.rb:42:in `new'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/houston-2.2.1/lib/houston/connection.rb:42:in `open'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/houston-2.2.1/lib/houston/connection.rb:19:in `open'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/houston-2.2.1/lib/houston/client.rb:40:in `push'
        from push_it.rb:22:in `<main>'

I also tried with the ruby grocer gem to be sure it's not a ruby issue and received the same error.

/Users/Kevin/.rvm/gems/ruby-2.1.2/gems/grocer-0.5.0/lib/grocer/ssl_connection.rb:41:in `initialize': SSL_CTX_use_Private
Key: key values mismatch (OpenSSL::SSL::SSLError)
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/grocer-0.5.0/lib/grocer/ssl_connection.rb:41:in `new'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/grocer-0.5.0/lib/grocer/ssl_connection.rb:41:in `connect'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/grocer-0.5.0/lib/grocer/connection.rb:29:in `connect'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/grocer-0.5.0/lib/grocer/connection.rb:55:in `with_connection'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/grocer-0.5.0/lib/grocer/connection.rb:23:in `write'
        from /Users/Kevin/.rvm/gems/ruby-2.1.2/gems/grocer-0.5.0/lib/grocer/pusher.rb:8:in `push'
        from push_it.rb:41:in `<main>'

My hand generated pem file works just fine.

What will happen if production certificate already exists?

It is stated in readme, that:
PEM will never revoke your existing certificates.
But it's not clear what will happen if active production certificate already exists? Will it download currently active certificate and generate pem file?
I think #12 is about the same issue, but it would be nice if you would update readme file.

Support Web App Ids

I just tried to download a Web App Push Certificate. It failed when it tried to find the certificate. This is very much like regular app ids, except the app id is located in a different tab and only has production certificates.

Crash while downloading generated pem

Version 0.6.2 introduces a bug so that downloading the generated certificate fails with an undefined variable, introduced in this commit: 076949e

/Users/matt/.rvm/gems/ruby-2.2.2/gems/pem-0.6.2/lib/pem/developer_center.rb:126:in `create_push_for_app': undefined local variable or method `output_path' for #<PEM::DeveloperCenter:0x007fbf536b1c90> (NameError)
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/pem-0.6.2/lib/pem/developer_center.rb:34:in `fetch_cer_file'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/pem-0.6.2/lib/pem/cert_manager.rb:15:in `run'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/pem-0.6.2/lib/pem/manager.rb:5:in `start'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/pem-0.6.2/bin/pem:35:in `block (2 levels) in run'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/commander-4.3.4/lib/commander/command.rb:153:in `run'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/commander-4.3.4/lib/commander/runner.rb:428:in `run_active_command'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/commander-4.3.4/lib/commander/runner.rb:68:in `run!'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/commander-4.3.4/lib/commander/delegates.rb:15:in `run!'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/pem-0.6.2/bin/pem:41:in `run'
    from /Users/matt/.rvm/gems/ruby-2.2.2/gems/pem-0.6.2/bin/pem:47:in `<top (required)>'
    from /Users/matt/.rvm/gems/ruby-2.2.2/bin/pem:23:in `load'
    from /Users/matt/.rvm/gems/ruby-2.2.2/bin/pem:23:in `<main>'
    from /Users/matt/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'
    from /Users/matt/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>'

Stop the process if download fails.

I'm using PEM to generate multiple certificates for multiple targets. Sometimes the download failed but you always copy /tmp/PEM/pem_temp.pem without checking, I ended up with a duplicate certificate.

INFO [2014-12-01 12:04:24.31]: Refreshing push notification profiles for app '[RETRACTED]'
INFO [2014-12-01 12:04:27.71]: Login into iOS Developer Center
INFO [2014-12-01 12:04:41.32]: Login successful
INFO [2014-12-01 12:04:45.43]: Push for app '[RETRACTED]' is enabled
WARN [2014-12-01 12:04:46.46]: Push for app '[RETRACTED]' is enabled, but there is no development certificate yet.
INFO [2014-12-01 12:04:49.53]: Couldn't find a signing certificate in the current folder. Creating one for you now.
INFO [2014-12-01 12:04:49.67]: Successfully generated .certSigningRequest at path '/tmp/PEM/PEMCertificateSigningRequest.certSigningRequest'
DEBUG [2014-12-01 12:04:49.71]: Waiting for iTC to generate the profile
DEBUG [2014-12-01 12:04:51.72]: Waiting for iTC to generate the profile
DEBUG [2014-12-01 12:04:53.73]: Waiting for iTC to generate the profile
DEBUG [2014-12-01 12:04:55.73]: Waiting for iTC to generate the profile
DEBUG [2014-12-01 12:04:57.74]: Waiting for iTC to generate the profile
INFO [2014-12-01 12:04:59.74]: Going to download the latest profile
https://developer.apple.com/account/ios/certificate/certificateContentDownload.action?displayId=BXT34RV39G&type=BKLRAVXMGM
INFO [2014-12-01 12:05:03.92]: Successfully downloaded latest .cer file.
openssl x509 -inform der -in '/tmp/PEM//aps_development_[RETRACTED].cer' -out /tmp/PEM/pem_temp.pem
unable to load certificate
25074:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:/SourceCache/OpenSSL098/OpenSSL098-52/src/crypto/asn1/tasn_dec.c:1315:
25074:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:/SourceCache/OpenSSL098/OpenSSL098-52/src/crypto/asn1/tasn_dec.c:379:Type=X509
./development_[RETRACTED].pem

Ensure latest version only when used

Hey, how do you think about calling this from CertManager or bin/pem since it check when I require pem?

It slows down a bit startup time of scripts. If we place it inside CertManager it'd check just before usage.

Permission denied error

I run pem 0.3.5. After starting pem and providing valid data I get a permission denied error after openssl x509 -inform der -in '/tmp/fastlane_core/aps_production_com.XXXX-Dev.cer' -out /tmp/PEM/pem_temp.pem

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:519:in rename': Permission denied - (/tmp/PEM/production_com.XXXX-Dev.pem, ./production_com.XXXX-Dev.pem) (Errno::EACCES)

bildschirmfoto 2015-02-20 um 22 04 36

When I ran the openssl x509... command from above manually, it seemed to work. But I'm really exited how pem will solve my push certification problems!

No play with a "Member" account...

If using a "member" account, there is not enough access to edit the app identifier on the web site, so PEM will fail because it can't find the "Edit" button...

running pem changed my hostName

I ran pem successfully to update my apns certificates, but much to my dismay the script changed my mac's hostname from Bruces-MacBook-Pro to android-909c667c11d9b2e5!!! I had to manually reset it as sudo and restart the console.

Write Error

I am getting the following error using pem as a regular user and as sudo:

Please select the team number you would like to access: 2
INFO [2015-02-18 17:04:43.26]: Login successful
INFO [2015-02-18 17:04:54.78]: Push for app 'com.klinche.klinche' is enabled
WARN [2015-02-18 17:04:54.78]: Creating push certificate for app 'com.demo.test'.
INFO [2015-02-18 17:04:57.83]: Creating a signing certificate for you.
/Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/lib/pem/signing_request.rb:21:in `write': No such file or directory @ rb_sysopen - /tmp/PEM/PEMCertificateSigningRequest.certSigningRequest (Errno::ENOENT)
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/lib/pem/signing_request.rb:21:in `generate'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/lib/pem/signing_request.rb:4:in `get_path'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/lib/pem/developer_center.rb:75:in `create_push_for_app'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/lib/pem/developer_center.rb:27:in `fetch_cer_file'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/lib/pem/cert_manager.rb:12:in `run'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/bin/pem:37:in `block (2 levels) in run'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/commander-4.3.0/lib/commander/command.rb:179:in `call'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/commander-4.3.0/lib/commander/command.rb:179:in `call'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/commander-4.3.0/lib/commander/command.rb:154:in `run'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/commander-4.3.0/lib/commander/runner.rb:421:in `run_active_command'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/commander-4.3.0/lib/commander/runner.rb:81:in `run!'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/commander-4.3.0/lib/commander/delegates.rb:15:in `run!'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/bin/pem:50:in `run'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/gems/pem-0.3.4/bin/pem:71:in `<top (required)>'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/bin/pem:23:in `load'
    from /Users/daniel/Documents/PROJECT/gem/bundle/ruby/2.2.0/bin/pem:23:in `<main>'

And this is the image that popped up after the failure:
error1424307898 copy

Uncommon error with downloading the certificate

I was using PEM to generate 60 app pem files. This happened to me 11 times:

https://developer.apple.com/account/ios/certificate/certificateContentDownload.action?displayId=7H6QYPGXT4&type=3BQKVH9I2X error: redirection forbidden: https://developer.apple.com/account/ios/certificate/certificateContentDownload.action?displayId=7H6QYPGXT4&type=3BQKVH9I2X -> http://developer.apple.com/account/selectTeam.action. Use --trace to view backtrace

Attaching error screenshot:

error1417439209

PEM should create P12 file

I'm using PEM and it works great but I have to manually export p12 certificates to use server python libraries and to use parse.com.
It would be really nice if PEM would automatically export it.

Mauro.

ability to delete older cert if 2 exist

I know one of the philosophies of fastlane is to not expose destructive actions, however I think the proposed new feature below is not really destructive but more of a replace.

I would like a sub command of PEM (ex: --remove-oldest) to do the following:

If 2 valid [production] push certificates exist, remove the oldest of the 2

While this command does delete an asset, it only does so if there is a valid asset already in its place. The reason for wanting this feature, is pruning 2 certs down to one manually before running PEM [--force] does not scale. When you have many apps in many different teams it is extremely time consuming to find dupe bundle IDs and delete the oldest. When this spans multiple teams it gets even more time consuming.

Example:
PEM -u "[email protected]" -a "myapp.bundle.id" -t "MYTEAMID" --remove-oldest

PEM should redownload and recreate pem file if one is already active

error: Could not create a new push profile for app '<redacted>'. There is already a profile active.

This output of a script isn't particularly helpful. If you deleted the previous .pem or you're using a Continuous Integration that clears everything you still have to redownload them manually.

I would propose for it to redownload the cert and recreate the PEM file, if one is already active.

Support .p12

Passwordless .p12 are required in some services, namely Parse.com.

You can use this snippet to convert the resulting .pem to .p12.

openssl pkcs12 -export -password pass:"" -in develop.pem -inkey develop.pem -out develop.p12

Error running from fastlane

I have a fastlane project set up and it was working fine until last week.
Today I was prompted to update fastlane, after that the pem action is always crashing with the folowing error:

[13:28:47]: Connection reset by peer - recvfrom(2)
[13:28:48]: fastlane finished with errors
/Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/web_socket_server.rb:73:in `recv': Connection reset by peer - recvfrom(2) (Errno::ECONNRESET)
    from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/web_socket_server.rb:73:in `receive'
    from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/web_socket_server.rb:85:in `send'
    from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/server.rb:33:in `send'
    from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/browser.rb:270:in `command'
    from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/browser.rb:212:in `set_headers'
    from /Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/driver.rb:190:in `headers='
    from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.10.1/lib/fastlane_core/developer_center/developer_center.rb:50:in `initialize'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.6.4/lib/pem/cert_manager.rb:13:in `new'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.6.4/lib/pem/cert_manager.rb:13:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.6.4/lib/pem/manager.rb:5:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/actions/pem.rb:19:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/fast_file.rb:114:in `block (2 levels) in method_missing'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/actions/actions_helper.rb:51:in `execute_action'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/fast_file.rb:96:in `block in method_missing'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/fast_file.rb:95:in `chdir'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/fast_file.rb:95:in `method_missing'
    from (eval):24:in `handle_certs_and_provisioning'
    from (eval):58:in `block (3 levels) in parse'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/runner.rb:39:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/runner.rb:39:in `block in execute'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/runner.rb:29:in `chdir'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/runner.rb:29:in `execute'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/lib/fastlane/lane_manager.rb:33:in `cruise_lane'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/bin/fastlane:39:in `block (2 levels) in run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.4/lib/commander/command.rb:153:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.4/lib/commander/runner.rb:428:in `run_active_command'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.4/lib/commander/runner.rb:68:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.4/lib/commander/delegates.rb:15:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/bin/fastlane:128:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane-1.7.3/bin/fastlane:134:in `<top (required)>'
    from /usr/bin/fastlane:23:in `load'
    from /usr/bin/fastlane:23:in `<main>'

Running the pem command standalone works fine:

pem -g -a app_identifier

Download existing certificate

When i use pem with --force it creates new certificate and downloads it. But with no --force it doesnt occur. How i can download existing certificate?

Apple ID locked for security reasons

First of all thanks for a great tool!
I've been using it to generate pem files for several apps and on third app Apple blocked my account. Maybe you should consider some techniques to prevent this? Maybe make some random pauses between page loads or something else?

PS. It fantastic, that app makes a screenshot of a page that caused error.
error1425299661 png

Gem::LoadError since updating to pem-0.5.4

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:2007:in raise_if_conflicts': Unable to activate commander-4.2.1, because highline-1.7.2 conflicts with highline (~> 1.6.11) (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1176:inactivate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1212:in block in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1180:inactivate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1212:in block in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1180:inactivate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:48:in gem' from /usr/bin/pem:22:in

'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:2007:in raise_if_conflicts': Unable to activate commander-4.2.1, because highline-1.7.2 conflicts with highline (~> 1.6.11) (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1176:inactivate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1212:in block in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1180:inactivate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1212:in block in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1180:inactivate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:48:in gem' from /usr/bin/pem:22:in'

Sometimes PEM crashes on CSR generation

error1417453076

Following crash occurs

INFO [2014-12-01 17:57:36.40]: Refreshing push notification profiles for app '<redacted>'
INFO [2014-12-01 17:57:38.69]: Login into iOS Developer Center
INFO [2014-12-01 17:57:48.79]: Login successful
WARN [2014-12-01 17:57:52.28]: Push for app '<redacted>' is disabled. This has to change.
WARN [2014-12-01 17:57:53.34]: Push for app '<redacted>' is enabled, but there is no production certificate yet.
INFO [2014-12-01 17:57:56.43]: Couldn't find a signing certificate in the current folder. Creating one for you now.
INFO [2014-12-01 17:57:56.72]: Successfully generated .certSigningRequest at path '/tmp/PEM/PEMCertificateSigningRequest.certSigningRequest'
error: undefined method `set' for nil:NilClass. Use --trace to view backtrace

Cannot specify blank password for p12 cert

Hi,

With the PEM tool I cannot specify a blank password for the p12 certificate.

I guess this is a bug somewhere because I did check out the code and
if a password isn't specified using the p12_password parameter then
it should return a blank password.

See line 20 in cert_manager.rb

self.passphrase = PEM.config[:p12_password] || ''

Generate development pem file

Hi,

I tried to generate pem file for development with:
pem --development

I got: invalid option: --development.

Thanks,
Dragan

Unable to import private key from PEM output

I'm having issues importing the private key from the PEM file into my keychain. I can see it in the PEM file:

-----BEGIN CERTIFICATE-----
MIIFqzCCBJOgAwIBAgIILgN4uXC5goswDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNV
... snip ...
ajq8O08my4E+9Aw5Cfh2
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAs8OBwlMEhAZ6EPZFIs0bA2VN0VWW4cPs/zBCyfgijYtPSHci
... snip ...
M4bklmhdmK3BgPt/1TUnbdg2BOVsHxstCYTKwsGasd0zwGINexS50g==
-----END RSA PRIVATE KEY-----

But opening the file by double-clicking it will only import the cert into the keychain without the private key. Because it's missing the private key, the cert doesn't show up under "My Certificates" in Keychain Access -- you'll see it under "All Items".

I've tried extracting the private key from the PEM file and importing that, but Keychain Access says it's invalid. Not sure if user error or something else.

pem file rejected by server

I dont know what went wrong but I generated pem files for a new app Im working on, but the server rejected the pem files, saying they were wrong or something. The (push) server in question is a 3rd party server hosted by an ad serving network.
It looks as if the pems does not include a private key, if I add them to the keychain. Might be the culprit?
I actually used PEM for two apps like last month and it worked then. Is there a way to include private keys in the PEM files on creation?

Poltergeist timeout

Hi Felix.
I'm getting this timeout error:
/Library/Ruby/Gems/2.0.0/gems/poltergeist-1.5.1/lib/capybara/poltergeist/web_socket_server.rb:87:in `rescue in send': Timed out waiting for response to {"name":"click","args":[2,39]}. It's possible that this happened because something took a very long time (for example a page load was slow). If so, setting the Poltergeist :timeout option to a higher value will help (see the docs for details). If increasing the timeout does not help, this is probably a bug in Poltergeist - please report it to the issue tracker. (Capybara::Poltergeist::TimeoutError)

I couldn't find out which param should I set to increase the timeout time. Can you help me?

Error Finding App Name

I'm seeing an issue where PEM reports that it is unable to find an app with the ID I'm specifying, but the screenshot presented to show the error clearly shows that one is available.

Here is the error I'm getting from PEM:

/Users/Chris/.rvm/gems/ruby-2.2.1/gems/pem-0.6.4/lib/pem/developer_center.rb:70:in `open_app_page': Could not find app with identifier '<my app id>' on apps page. The identifier is case sensitive. (FastlaneCore::DeveloperCenter::DeveloperCenterGeneralError)
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/pem-0.6.4/lib/pem/developer_center.rb:14:in `fetch_cer_file'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/pem-0.6.4/lib/pem/cert_manager.rb:15:in `run'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/pem-0.6.4/lib/pem/manager.rb:5:in `start'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/pem-0.6.4/bin/pem:35:in `block (2 levels) in run'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/commander-4.3.4/lib/commander/command.rb:153:in `run'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/commander-4.3.4/lib/commander/runner.rb:428:in `run_active_command'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/commander-4.3.4/lib/commander/runner.rb:68:in `run!'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/commander-4.3.4/lib/commander/delegates.rb:15:in `run!'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/pem-0.6.4/bin/pem:41:in `run'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/gems/pem-0.6.4/bin/pem:47:in `<top (required)>'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/bin/pem:23:in `load'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/bin/pem:23:in `<main>'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval'
    from /Users/Chris/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>'

I've replaced the actual ID with for security.

This is my first time using PEM, so if this is something simple I apologize and appreciate any help.

Thanks!

Error: no implicit conversion of nil into String

I get the following error whenever using PEM on an app that contains a valid & current configuration.

[00:39:10]: {:DEFAULT_PLATFORM=>:ios, :ENVIRONMENT=>"MyEnvironment", :PLATFORM_NAME=>:ios, :LANE_NAME=>"ios test", :BUILD_NUMBER=>0}
[00:39:10]: no implicit conversion of nil into String
[00:39:10]: fastlane finished with errors
/Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/pem-0.6.3/lib/pem/manager.rb:17:in `basename': no implicit conversion of nil into String (TypeError)
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/pem-0.6.3/lib/pem/manager.rb:17:in `start'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/actions/pem.rb:19:in `run'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/fast_file.rb:112:in `block (2 levels) in method_missing'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/actions/actions_helper.rb:51:in `execute_action'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/fast_file.rb:94:in `block in method_missing'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/fast_file.rb:93:in `chdir'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/fast_file.rb:93:in `method_missing'
    from (eval):42:in `block (3 levels) in parse'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/runner.rb:36:in `call'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/runner.rb:36:in `block in execute'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/runner.rb:29:in `chdir'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/runner.rb:29:in `execute'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/lib/fastlane/lane_manager.rb:33:in `cruise_lane'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/bin/fastlane:39:in `block (2 levels) in run'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/commander-4.3.4/lib/commander/command.rb:178:in `call'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/commander-4.3.4/lib/commander/command.rb:153:in `run'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/commander-4.3.4/lib/commander/runner.rb:428:in `run_active_command'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/commander-4.3.4/lib/commander/runner.rb:68:in `run!'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/commander-4.3.4/lib/commander/delegates.rb:15:in `run!'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/bin/fastlane:128:in `run'
    from /Users/dillan/.rvm/gems/ruby-2.1.0@global/gems/fastlane-1.4.0/bin/fastlane:134:in `<top (required)>'
    from /Users/dillan/.rvm/rubies/ruby-2.1.0/bin/fastlane:23:in `load'
    from /Users/dillan/.rvm/rubies/ruby-2.1.0/bin/fastlane:23:in `<main>'
    from /Users/dillan/.rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `eval'
    from /Users/dillan/.rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `<main>'

My Fastfile contains the following:

pem(
  force: false, # create a new profile, even if the old one is still valid
  app_identifier: ENV['BUNDLE_ID'],
  save_private_key: true,
  new_profile: Proc.new do |profile_path| # this block gets called when a new profile was generated
    puts profile_path # the absolute path to the new PEM file
    # insert the code to upload the PEM file to the server
  end
)

If the app does not have a current push notification configuration then PEM succeeds at creating one.

Fresh install fails to create certificate

Hello - I just installed the full fastlane suite and manually created a new app with the "Produce" tool. Then I also attempt to manually create a push cert with 'PEM'. This fails %100 of the time for me.The output is as follows:

Not configured for push (error image simply shows the dev center list of my app IDs)

Stephens-MBP:fastlanetest wilks$ pem
INFO [2015-02-25 18:01:11.60]: Refreshing push notification profiles for app 'com.whatever.autotest1'
INFO [2015-02-25 18:01:12.62]: Login into iOS Developer Center
INFO [2015-02-25 18:01:21.52]: Login successful
WARN [2015-02-25 18:01:34.12]: Push for app 'com.whatever.autotest1' is disabled. This has to change.
WARN [2015-02-25 18:01:34.14]: Creating push certificate for app 'com.whatever.autotest1'.
DEBUG [2015-02-25 18:01:57.78]: ["/Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.1.4/lib/fastlane_core/developer_center/developer_center_helper.rb:63:in `wait_for_elements'", "/Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/developer_center.rb:72:in `create_push_for_app'", "/Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/developer_center.rb:27:in `fetch_cer_file'", "/Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/cert_manager.rb:12:in `run'", "/Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:37:in `block (2 levels) in run'", "/Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'", "/Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'", "/Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:155:in `run'", "/Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:421:in `run_active_command'", "/Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:81:in `run!'", "/Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/delegates.rb:8:in `run!'", "/Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:50:in `run'", "/Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:71:in `<top (required)>'", "/usr/bin/pem:23:in `load'", "/usr/bin/pem:23:in `<main>'"]
/Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.1.4/lib/fastlane_core/developer_center/developer_center_helper.rb:54:in `wait_for': Couldn't find '.file-input.validate' after waiting for quite some time (FastlaneCore::DeveloperCenter::DeveloperCenterGeneralError)
    from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.1.4/lib/fastlane_core/developer_center/developer_center_helper.rb:63:in `wait_for_elements'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/developer_center.rb:72:in `create_push_for_app'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/developer_center.rb:27:in `fetch_cer_file'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/cert_manager.rb:12:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:37:in `block (2 levels) in run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:155:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:421:in `run_active_command'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:81:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/delegates.rb:8:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:50:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:71:in `<top (required)>'
    from /usr/bin/pem:23:in `load'
    from /usr/bin/pem:23:in `<main>'

If I run it when the app ID is already configured for push messages - the failure is different:

Previously configured for push by pem (or by hand) Error image shows the dialog to upload the CSR file

INFO [2015-02-25 17:34:40.00]: Refreshing push notification profiles for app 'com.whatever.autotest1'
INFO [2015-02-25 17:34:41.01]: Login into iOS Developer Center
INFO [2015-02-25 17:34:49.91]: Login successful
INFO [2015-02-25 17:35:02.51]: Push for app 'com.whatever.autotest1' is enabled
WARN [2015-02-25 17:35:02.51]: Creating push certificate for app 'com.whatever.autotest1'.
INFO [2015-02-25 17:35:05.55]: Creating a signing certificate for you.
/Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/signing_request.rb:9:in `generate': uninitialized constant PEM::SigningRequest::OpenSSL (NameError)
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/signing_request.rb:4:in `get_path'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/developer_center.rb:76:in `create_push_for_app'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/developer_center.rb:27:in `fetch_cer_file'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/lib/pem/cert_manager.rb:12:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:37:in `block (2 levels) in run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:180:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/command.rb:155:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:421:in `run_active_command'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/runner.rb:81:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.2.1/lib/commander/delegates.rb:8:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:50:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.3.5/bin/pem:71:in `<top (required)>'
    from /usr/bin/pem:23:in `load'
    from /usr/bin/pem:23:in `<main>'

error1424907305

I can create the push certs by hand no problem so it doesn't seem to be a problem with my itunes account or app setup. I tried updating my OpenSSL libs via brew but no change.

Not detecting certificate expiration correctly

Even if my push certificate is expiring in less than 30 days, this message is shown:

You already have a push certificate, which is active for more than 30 more days. No need to create a new one.

$: pem -a com.myapp.id -u username

I guess it's because of the line 13 in manager.rb, it's seems to be checking just the presence of the certificate and not the expiration date.

existing_certificate = Spaceship.certificate.all.detect {|c| c.name == PEM.config[:app_identifier] }

followed by:

if existing_certificate && !PEM.config[:force]
    Helper.log.info "You already have a push certificate, which is active for more than 30 more days. No need to create a new one".green
    Helper.log.info "If you still want to create a new one, use the --force option when running PEM.".green
    return false
end

Expected behaviour: create a new certificate if the certificate expires in less than 30 days without having to specify the --force flag.

Crash in various stages of pem generation (`sysread_nonblock': end of file reached (Faraday::ConnectionFailed))

I've gotten that error so far when logging in, when choosing my team and when generating the CSR.
Heres a sample console output:

[10:59:58]: Existing push notification profile 'MyApp' is valid for 23 more days.
[10:59:58]: Creating a new push certificate for app 'de.myApp'.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/openssl/buffering.rb:175:in `sysread_nonblock': end of file reached (Faraday::ConnectionFailed)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/openssl/buffering.rb:175:in `read_nonblock'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:153:in `rbuf_fill'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:144:in `readline'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_line'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1406:in `block in transport_request'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1403:in `catch'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1403:in `transport_request'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1376:in `request'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1369:in `block in request'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:852:in `start'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1367:in `request'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:82:in `perform_request'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:40:in `block in call'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:87:in `with_net_http_connection'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:32:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/faraday_middleware-0.10.0/lib/faraday_middleware/response_middleware.rb:30:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/faraday_middleware-0.10.0/lib/faraday_middleware/response_middleware.rb:30:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/faraday_middleware-0.10.0/lib/faraday_middleware/response_middleware.rb:30:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.1/lib/faraday/rack_builder.rb:139:in `build_response'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.1/lib/faraday/connection.rb:377:in `run_request'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.1/lib/faraday/connection.rb:177:in `post'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:229:in `block in send_request'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:161:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:161:in `with_retry'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:228:in `send_request'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:204:in `request'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/portal/portal_client.rb:96:in `block in apps'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:113:in `block in paging'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:111:in `loop'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/client.rb:111:in `paging'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/portal/portal_client.rb:95:in `apps'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/portal/app.rb:80:in `all'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/portal/app.rb:103:in `find'
    from /Library/Ruby/Gems/2.0.0/gems/spaceship-0.5.3/lib/spaceship/portal/certificate.rb:236:in `create!'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.7.1/lib/pem/manager.rb:37:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.7.1/bin/pem:34:in `block (2 levels) in run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:68:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.7.1/bin/pem:40:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/pem-0.7.1/bin/pem:46:in `<top (required)>'
    from /usr/bin/pem:23:in `load'
    from /usr/bin/pem:23:in `<main>'

Update pem -h

Currently the help doesn't give any info about team id.
You have to do pem renew -h to have a helpful feedback - that's still incomplete.

Please just put the whole README.md into the output of pem -h

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.