Skip to content

Adding Apple App Store Integration

Darby Frey requested to merge app-store-connect-integration into master

What does this MR do and why?

Related issue: gitlab-org/incubation-engineering/mobile-devops/readme#36 (closed)

This MR adds a new integration for the Apple App Store Connect API which can be used to validate the configuration and inject the necessary configuration values into CI pipelines as CI variables. These variables are named to match the environment variables expected by the app_store_connect_api_key in Fastlane.

With this integration enabled, a single entry in a project's fastlane file will login to the Apple App Store so that subsequent interactions are authorized, such as uploading a build to Test Flight or the public App Store.

app_store_connect_api_key(
  is_key_content_base64: true
)

image

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

How to set up and validate locally

Testing this integration locally requires App Store Connect credentials, which require a paid Apple developer account. If you don't have an account, ask @darbyfrey and he can give you test credentials.

  1. Generate App Store Connect API credentials. See the "Creating an App Store Connect API Key" in the Fastlane docs
  2. Clone this demo project with a build preconfigured to use the integration and add it to your local GDK https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/apple-integration-demo
  3. Enable the integration for the newly created project, in project settings > Integrations -> Apple Apps Store Connect, and enter the Issuer Id, Key Id, and Private Key generated in Step 1.
  4. Use the Test Settings button to ensure the credentials are correct before saving the changes.
  5. Once the changes are saved, run a new pipeline in the project. In the job log output it should show a confirmation that connection to Apple was successful.

image

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Darby Frey

Merge request reports