sigh/lib/sigh/runner.rb
# Certificate to use based on the current distribution mode
Certificate to use based on the current distribution mode
Certificate to use based on the current distribution mode
def certificate_to_use
      certificates = certificates_for_profile_and_platform
      certificates = certificates.find_all do |c|
        if Sigh.config[:cert_id]
          next unless c.id == Sigh.config[:cert_id].strip
        end
        if Sigh.config[:cert_owner_name]
          next unless c.owner_name.strip == Sigh.config[:cert_owner_name].strip
        end
        true
      end
      unless Sigh.config[:skip_certificate_verification]
        certificates = certificates.find_all do |c|
          file = Tempfile.new('cert')
          file.write(c.download_raw)
          file.close
          FastlaneCore::CertChecker.installed?(file.path)
        end
      end
      if certificates.count > 1 and !Sigh.config[:development]
        UI.important "Found more than one code signing identity. Choosing the first one. Check out `fastlane sigh --help` to see all available options."
        UI.important "Available Code Signing Identities for current filters:"
        certificates.each do |c|
          str = ["\t- Name:", c.owner_name, "- ID:", c.id + " - Expires", c.expires.strftime("%d/%m/%Y")].join(" ")
          UI.message str.green
        end
      end
      if certificates.count == 0
        filters = ""
        filters << "Owner Name: '#{Sigh.config[:cert_owner_name]}' " if Sigh.config[:cert_owner_name]
        filters << "Certificate ID: '#{Sigh.config[:cert_id]}' " if Sigh.config[:cert_id]
        UI.important "No certificates for filter: #{filters}" if filters.length > 0
        message = "Could not find a matching code signing identity for type '#{profile_type.to_s.split(':').last}'. "
        message += "It is recommended to use match to manage code signing for you, more information on https://codesigning.guide."
        message += "If you don't want to do so, you can also use cert to generate a new one: https://fastlane.tools/cert"
        UI.user_error!(message)
      end
      return certificates if Sigh.config[:development] 
      return certificates.first
    end
def certificate_to_use certificates = certificates_for_profile_and_platform certificates = certificates . find_all do | c | if Sigh . config [ :cert_id ] next unless c . id == Sigh . config [ :cert_id ] . strip end if Sigh . config [ :cert_owner_name ] next unless c . owner_name . strip == Sigh . config [ :cert_owner_name ] . strip end true end unless Sigh . config [ :skip_certificate_verification ] certificates = certificates . find_all do | c | file = Tempfile . new ( 'cert' ) file . write ( c . download_raw ) file . close FastlaneCore :: CertChecker . installed? ( file . path ) end end if certificates . count > 1 and ! Sigh . config [ :development ] UI . important "Found more than one code signing identity. Choosing the first one. Check out `fastlane sigh --help` to see all available options." UI . important "Available Code Signing Identities for current filters:" certificates . each do | c | str = [ "\t- Name:" , c . owner_name , "- ID:" , c . id + " - Expires" , c . expires . strftime ( "%d/%m/%Y" ) ] . join ( " " ) UI . message str . green end end if certificates . count == 0 filters = "" filters << "Owner Name: '#{Sigh.config[:cert_owner_name]}' " if Sigh . config [ :cert_owner_name ] filters << "Certificate ID: '#{Sigh.config[:cert_id]}' " if Sigh . config [ :cert_id ] UI . important "No certificates for filter: #{filters}" if filters . length > 0 message = "Could not find a matching code signing identity for type '#{profile_type.to_s.split(':').last}'. " message += "It is recommended to use match to manage code signing for you, more information on https://codesigning.guide." message += "If you don't want to do so, you can also use cert to generate a new one: https://fastlane.tools/cert" UI . user_error! ( message ) end return certificates if Sigh . config [ :development ] return certificates . first end
Certificate to use based on the current distribution mode
Certificate to use based on the current distribution mode
# Filter them # development profiles support multiple certificates