fastlane-old / pem Goto Github PK
View Code? Open in Web Editor NEWAutomatically generate and renew your push notification profiles
Home Page: https://fastlane.tools
Automatically generate and renew your push notification profiles
Home Page: https://fastlane.tools
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
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.
This should be somehow possible:
Find a valid Info.plist in the current directory and fetch the bundle identifier of the project from there.
If the current push profile is active for at least 2 more weeks, it should do nothing, except when providing a --force
flag.
If it's only 2 weeks or less, it should create the new profile on a free slot
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
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.
I do not see it in the documentation .
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?
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>'
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?
At the moment it's only possible to create production certificates with PEM. It would be great to create Development Certificates as well.
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:
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:
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>'
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.
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>'
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
--- 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.
/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:in
activate'
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:in
each'
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:in
activate'
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:in
each'
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:in
activate'
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
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:in
activate'block in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in
each'activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1180:in
activate'block in activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1198:in
each'activate_dependencies' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1180:in
activate'gem' from /usr/bin/pem:22:in
'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.
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>'
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
having every push cert as 'development' or 'production' is not acceptable
there needs to be a way of changing the name of the inside name of the push cert.
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.
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
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:
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
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?
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.
If the idea of the tool is to use it in scripts, next scripts should deterministically know which file pem had created. Currently it's development_bundle_id.pem
or something.
There should be an -o
flag, to set the output name.
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.
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:~$
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)
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!
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.
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.
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.
Got this error when running pem
. Here is error image, it looks fine.
Here's the back trace. Again, it seems fine. When I load that URL, the certificate downloads without any issue.
If you've not run into this before, I'll dig into it tonight/tomorrow and should find a fix. Let me know!
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)
Hi,
I tried to generate pem file for development with:
pem --development
I got: invalid option: --development.
Thanks,
Dragan
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.
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.
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?
We have more than 400 applications. In this case, page https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action
does not display all apps in the list. Some apps in the bottom will appear only with scrolling.
So, it's better to use search button to find and open the app from the list.
Very similar to #49 but appears to be a step further into the process.
Let's add the the ability to choose the team of sigh to PEM :)
fastlane-old/sigh#7
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!
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
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.
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] || ''
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.
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.
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.
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...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.