iOS · Arazzo Workflow

iOS Create a Signing Certificate

Version 1.0.0

Submit a certificate signing request, then read the issued certificate back for download.

1 workflow 1 source API 1 provider
View Spec View on GitHub iOSAppleMobileApp StorePush NotificationsIn-App PurchasesSubscriptionsAuthenticationWalletDeveloper PlatformArazzoWorkflows

Provider

ios

Workflows

create-signing-certificate
Create a signing certificate from a CSR and read it back.
Submits a CSR of the given certificate type and then reads the issued certificate to return its content and metadata.
2 steps inputs: certificateType, csrContent outputs: certificateContent, certificateId, expirationDate
1
createCertificate
certificates_createInstance
Submit the CSR to issue a new signing certificate of the requested type.
2
getCertificate
certificates_getInstance
Read the issued certificate to return its encoded content and expiration so it can be installed into a keychain or CI signing store.

Source API Descriptions

Arazzo Workflow Specification

ios-create-signing-certificate-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: iOS Create a Signing Certificate
  summary: Submit a certificate signing request, then read the issued certificate back for download.
  description: >-
    The first half of any code-signing setup. The workflow submits a base64
    encoded certificate signing request (CSR) of the requested certificate type
    to App Store Connect, then reads the newly issued certificate to retrieve its
    serial number, expiration date, and the encoded certificate content needed to
    sign builds locally. Every step spells out its request inline so the flow can
    be read and executed without opening the underlying App Store Connect OpenAPI
    description. All calls require an App Store Connect JWT bearer token.
  version: 1.0.0
sourceDescriptions:
- name: appStoreConnectApi
  url: ../openapi/app-store-connect-openapi.json
  type: openapi
workflows:
- workflowId: create-signing-certificate
  summary: Create a signing certificate from a CSR and read it back.
  description: >-
    Submits a CSR of the given certificate type and then reads the issued
    certificate to return its content and metadata.
  inputs:
    type: object
    required:
    - csrContent
    - certificateType
    properties:
      csrContent:
        type: string
        description: The base64-encoded certificate signing request (CSR) content.
      certificateType:
        type: string
        description: The certificate type to issue (e.g. DEVELOPMENT, DISTRIBUTION, IOS_DISTRIBUTION).
  steps:
  - stepId: createCertificate
    description: >-
      Submit the CSR to issue a new signing certificate of the requested type.
    operationId: certificates_createInstance
    requestBody:
      contentType: application/json
      payload:
        data:
          type: certificates
          attributes:
            csrContent: $inputs.csrContent
            certificateType: $inputs.certificateType
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      certificateId: $response.body#/data/id
      serialNumber: $response.body#/data/attributes/serialNumber
  - stepId: getCertificate
    description: >-
      Read the issued certificate to return its encoded content and expiration
      so it can be installed into a keychain or CI signing store.
    operationId: certificates_getInstance
    parameters:
    - name: id
      in: path
      value: $steps.createCertificate.outputs.certificateId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      certificateContent: $response.body#/data/attributes/certificateContent
      expirationDate: $response.body#/data/attributes/expirationDate
      displayName: $response.body#/data/attributes/displayName
  outputs:
    certificateId: $steps.createCertificate.outputs.certificateId
    certificateContent: $steps.getCertificate.outputs.certificateContent
    expirationDate: $steps.getCertificate.outputs.expirationDate