class Fastlane::Actions::GetPushCertificateAction

Public Class Methods

author() click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 28
def self.author
  "KrauseFx"
end
available_options() click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 50
def self.available_options
  require 'pem'
  require 'pem/options'

  @options = PEM::Options.available_options
  @options << FastlaneCore::ConfigItem.new(key: :new_profile,
                               description: "Block that is called if there is a new profile",
                               optional: true,
                               type: :string_callback)
  @options
end
category() click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 82
def self.category
  :push
end
description() click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 24
def self.description
  "Ensure a valid push profile is active, creating a new one if needed (via _pem_)"
end
details() click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 32
      def self.details
        sample = <<-SAMPLE.markdown_sample
          ```ruby
          get_push_certificate(
            new_profile: proc do
              # your upload code
            end
          )
          ```
        SAMPLE

        [
          "Additionally to the available options, you can also specify a block that only gets executed if a new profile was created. You can use it to upload the new profile to your server.",
          "Use it like this:".markdown_preserve_newlines,
          sample
        ].join("\n")
      end
example_code() click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 66
def self.example_code
  [
    'get_push_certificate',
    'pem # alias for "get_push_certificate"',
    'get_push_certificate(
      force: true, # create a new profile, even if the old one is still valid
      app_identifier: "net.sunapps.9", # optional app identifier,
      save_private_key: true,
      new_profile: proc 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
    )'
  ]
end
is_supported?(platform) click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 62
def self.is_supported?(platform)
  platform == :ios
end
run(params) click to toggle source
# File fastlane/lib/fastlane/actions/get_push_certificate.rb, line 4
def self.run(params)
  require 'pem'
  require 'pem/options'
  require 'pem/manager'

  success_block = params[:new_profile]

  PEM.config = params

  if Helper.test?
    profile_path = './test.pem'
  else
    profile_path = PEM::Manager.start
  end

  if success_block && profile_path
    success_block.call(File.expand_path(profile_path)) if success_block
  end
end