Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ You can easily create a signed IPA file for your Xcode project with Bitrise.

- You have set up [Apple service connection](/en/bitrise-platform/integrations/apple-services-connection/about-connecting-to-apple-services) on Bitrise.
- Your [code signing files are managed correctly](/en/bitrise-ci/code-signing/ios-code-signing/creating-a-signed-ipa-for-xcode-projects).
- You set the relevant inputs of our **Xcode Archive and Export for iOS** Step.
- You set the relevant inputs of our **Xcode Archive & Export for iOS** Step.

<Partial_IMPORTANTUploadTheDistributionANDTheDevelopmentSigningCertificates />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ If you use automatic provisioning, you never need to use the **Certificate and p

| Steps | How they work | When to use |
| --- | --- | --- |
| Xcode Steps: - **Xcode Archive and Export for iOS** - **Export iOS and tvOS Xcode Archive** - **Xcode build for testing for iOS** | These Steps set up code signing in your Xcode project automatically with nearly zero configuration. | We recommend using these Steps in most scenarios. |
| Xcode Steps: - **Xcode Archive & Export for iOS** - **Export iOS and tvOS Xcode Archive** - **Xcode build for testing for iOS** | These Steps set up code signing in your Xcode project automatically with nearly zero configuration. | We recommend using these Steps in most scenarios. |
| **Manage iOS Code Signing** Step | This Step will set up code signing in your Xcode project before running a build. | You can use this dedicated Step if: - You are building the app from script or fastlane. - You have a cross-platform project. For example, React Native, Flutter, Ionic or Cordova. - You are building a macOS app. |

### Using the Xcode Steps
Expand All @@ -104,7 +104,7 @@ You can use any of the Xcode Steps with built-in automatic management of code si
You can choose between [API key authentication](/en/bitrise-platform/integrations/apple-services-connection/connecting-to-an-apple-service-with-api-key) or [Apple ID authentication](/en/bitrise-platform/integrations/apple-services-connection/connecting-to-an-apple-service-with-apple-id). We generally recommend API key authentication.
1. Add any of the following Steps to your <GlossTerm baseform="workflow">Workflow</GlossTerm>, depending on what you need:

- **Xcode Archive and Export for iOS**: Builds your Xcode app and exports an IPA of the type you choose.
- **Xcode Archive & Export for iOS**: Builds your Xcode app and exports an IPA of the type you choose.
- **Export iOS and tvOS Xcode Archive**: Exports an IPA from an already existing archive.
- **Xcode build for testing for iOS**: Builds your Xcode app with the `build-for-testing` action.
1. Set the **Automatic code signing method** input to the Apple service authentication type you set up.
Expand All @@ -113,7 +113,7 @@ You can use any of the Xcode Steps with built-in automatic management of code si

**YAML example for setting code signing method**

In this example, the **Xcode Archive and Export for iOS** Step is set to use API key authentication.
In this example, the **Xcode Archive & Export for iOS** Step is set to use API key authentication.

```yaml
- xcode-archive@4:
Expand Down Expand Up @@ -142,13 +142,13 @@ Use our dedicated Step for automatically managing code signing assets if you do

## Generating export options plists

The `ExportOptions.plist` file is automatically generated based on the [Xcode Archive for iOS](https://bitrise.io/integrations/steps/xcode-archive) Step inputs. You can, however, override these inputs and use it in the **Xcode Archive and Export for iOS** Step.
The `ExportOptions.plist` file is automatically generated based on the [Xcode Archive for iOS](https://bitrise.io/integrations/steps/xcode-archive) Step inputs. You can, however, override these inputs and use it in the **Xcode Archive & Export for iOS** Step.

1. Open your project on a local development machine Xcode.
1. Archive the project.
1. In the Organizer, select the newly created `.xcarchive` file. Click **Distribute App** to export it into an IPA file. Xcode will copy the used `ExportOptions.plist` file next to the generated IPA file.
1. Open this `ExportOptions.plist` file in your favorite text editor and copy its content.
1. Paste its content to the **Xcode Archive and Export for iOS** Step's **Export options plist** content input.
1. Paste its content to the **Xcode Archive & Export for iOS** Step's **Export options plist** content input.

**An example plist file:**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ The procedure lists the bare minimum requirements to configure these Steps to ex
- `off` if you don't do automatic code signing.
- `api-key` [if you use API key authorization](/en/bitrise-platform/integrations/apple-services-connection/about-connecting-to-apple-services).
- `apple-id` [if you use Apple ID authorization](/en/bitrise-platform/integrations/apple-services-connection/about-connecting-to-apple-services).
1. Add the **[Export iOS and tvOS Xcode archive](https://www.bitrise.io/integrations/steps/export-xcarchive)** Step to your Workflow. This Step reuses the archive generated by the **Xcode Archive and Export for iOS** Step and does a second export from the archive.
1. Add the **[Export iOS and tvOS Xcode archive](https://www.bitrise.io/integrations/steps/export-xcarchive)** Step to your Workflow. This Step reuses the archive generated by the **Xcode Archive & Export for iOS** Step and does a second export from the archive.
1. Set the **Automatic code signing method** input to the Apple service connection you want to use for code signing. The available options are:

- `off` if you don't do automatic code signing.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Our [iOS code signing Steps](/en/bitrise-ci/code-signing/ios-code-signing/creati

The maximum number of provisioning profiles and .p12 certificates you can upload to the **Code Signing** tab on Bitrise is 30. If you’ve already reached this limit and wish to use even more, then here are a few tips on how to use even more provisioning profiles:

- Use a Step with automatic provisioning, such as **Xcode Archive and Export for iOS**, **Export iOS and tvOS Xcode Archive**, **Xcode build for testing for iOS** , or **Manage iOS Code Signing**. These Steps only require the code signing identities (certificates with .p12 extension) to be uploaded to Bitrise. You can download the provisioning profiles from the Apple Developer portal on-the-fly during the build if you have [connected your Apple Developer account to Bitrise](/en/bitrise-platform/integrations/apple-services-connection/connecting-to-an-apple-service-with-api-key).
- Use a Step with automatic provisioning, such as **Xcode Archive & Export for iOS**, **Export iOS and tvOS Xcode Archive**, **Xcode build for testing for iOS** , or **Manage iOS Code Signing**. These Steps only require the code signing identities (certificates with .p12 extension) to be uploaded to Bitrise. You can download the provisioning profiles from the Apple Developer portal on-the-fly during the build if you have [connected your Apple Developer account to Bitrise](/en/bitrise-platform/integrations/apple-services-connection/connecting-to-an-apple-service-with-api-key).
- You can create a .zip file containing the required certificates/profiles. In this case, you don’t need to upload any certificates/profiles on Bitrise. During the build you can download the .zip file and update the certificate/profile related inputs of the **Certificate and Profile Installer** Step to match the path to the certificate/profile on the build machine. Note that the **Certificate and Profile Installer** Step supports local paths and URLs for certificates and profiles.
- You can host the profiles and certificates yourself, and only add an URL that is pointing to a given certificate/profile to the workflow.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ To deploy an iOS app to [bitrise.io](https://www.bitrise.io/), you will always n
1. Generate an IPA file on your own machine at least once.
1. [Upload all necessary code signing files](/en/bitrise-ci/code-signing/ios-code-signing/creating-a-signed-ipa-for-xcode-projects) to Bitrise.
1. If you want your internal testers to test the app, [register test devices](/en/bitrise-ci/testing/testing-ios-apps/registering-a-test-device).
1. Make sure the **Xcode Archive and Export for iOS** <GlossTerm baseform="Step">Step</GlossTerm> is in your <GlossTerm baseform="Workflow">Workflow</GlossTerm>.
1. Make sure the **Xcode Archive & Export for iOS** <GlossTerm baseform="Step">Step</GlossTerm> is in your <GlossTerm baseform="Workflow">Workflow</GlossTerm>.
1. Set the **Automatic code signing** input to the Apple service connection you want to use for code signing. The available options are:

- `off`if you don’t do automatic code signing.
Expand Down
2 changes: 1 addition & 1 deletion docs/bitrise-ci/getting-started/adding-a-new-project.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Bitrise scans your repository and generates a starter CI configuration automatic
Once scanning completes:

- If a project type is detected, it appears under the **Detected options** tab.
- If no project type is detected, switch to the **Manual setup** tab and select your project type from the **Project type** dropdown. Supported types include Android, Cordova, Fastlane, Flutter, Ionic, iOS, and others.
- If no project type is detected, switch to the **Manual setup** tab and select your project type from the **Project type** dropdown.

![CI configuration — manual project type selection](/img/getting-started/2026-06-27-add-ci-config-project-type-picker.png)

Expand Down
6 changes: 6 additions & 0 deletions docs/bitrise-ci/getting-started/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ Bitrise automatically creates your first [workspace](/en/bitrise-platform/worksp

On the **Dashboard**, click **New project** and select **Configure Bitrise CI**. The **Add CI config** wizard walks you through three stages:

:::note[Release Management]

If you want to add an app to [Release Management](/en/release-management) instead, select **Add your app** in the same dialog.

:::

1. **Repository**: connect to your Git provider, select a repository, authorize Bitrise to access it, and select a default branch.
1. **CI configuration**: Bitrise scans your repository and generates a starter configuration. If it can’t detect your project type automatically, select it manually from the **Project type** dropdown.
1. **Build settings**: review the pre-selected build machine and stack, choose whether builds are private or public, and optionally register a webhook so builds trigger on code changes automatically.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ A Bitrise Workspace has four main roles:

- **Owner**: The owner of the Workspace. Full administrative control over the Workspace without restrictions. A Workspace can have multiple Owners. The default Owner is the account that created the Workspace.
- **Manager**: The user can access and modify Workspace settings such as connected service accounts, can manage members but can't access billing details and can't delete the Workspace.
- **Contributor**: The user can't access Workspace settings and can't add new members or manage existing members.
- **Viewer**: The user can't add new projects or Release Management apps to the Workspace.
- **Contributor**: Can create new CI projects and add Release Management apps.
- **Viewer**: Can only view selected Workspace settings (Projects and Integrations).

On App Center, you can create teams within organizations. On Bitrise, Workspace members can be added to Workspace groups: this makes it easier to assign multiple people to projects at the same time.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ A build on Bitrise is the process specified by the app’s [Workflow](/en/bitris
In this section we describe how you can trigger builds on Bitrise:

- The **Build Now** function on Jenkins corresponds with [starting a build manually](/en/bitrise-ci/run-and-analyze-builds/starting-builds/starting-builds-manually): click the button on your builds page and either simply start a new build or tinker away with the [Advanced configuration options](/en/bitrise-ci/run-and-analyze-builds/starting-builds/scheduling-builds#advanced-configuration-options-for-startingscheduling-builds).
- The **Build periodically** function of Jenkins is the [Scheduling builds](/en/bitrise-ci/run-and-analyze-builds/starting-builds/scheduling-builds) function on Bitrise. A big advantage of Bitrise is that you don’t have to set up a `cron` job, like you would on Jenkins, to schedule a specific time. Instead, select a day/s from the timeline and type an hour and a month. No confusion over `cron` expressions any more!
- The **Build periodically** function of Jenkins is the [Scheduling builds](/en/bitrise-ci/run-and-analyze-builds/starting-builds/scheduling-builds) function on Bitrise. A big advantage of Bitrise is that you don’t have to set up a `cron` job, like you would on Jenkins, to schedule a specific time. Instead, you can use a visual scheduler to pick the days and time, or enter a `cron` expression directly if you prefer.
- For any Git related events, such as code push, pull requests, and Git tags, you can [configure triggers](/en/bitrise-ci/run-and-analyze-builds/build-triggers/configuring-build-triggers) that automatically start a build on Bitrise.
- The **Build after other projects** function of Jenkins is equivalent to the [chaining Workflows together](/en/bitrise-ci/workflows-and-pipelines/workflows/managing-workflows) on Bitrise where the Workflows run in succession. It’s surprisingly easy to chain Workflows together on Bitrise.
- You can trigger builds by any other remote system: use [Webhooks overview](/en/bitrise-platform/integrations/webhooks/webhooks-overview). We’re integrated with GitHub, Gitlab, Bitbucket, Gogs, Slack, Visual Studio, Assembla, and Deveo.
Expand Down Expand Up @@ -186,7 +186,7 @@ Check out our [blogpost](https://blog.bitrise.io/post/migrate-your-android-app-f

A stack is the type of virtual machine we use to run your build. For example, for a native iOS app, the best stack is one of our Xcode stacks. Stacks come with all of the necessary tools pre-installed, and are regularly updated to make sure they will serve all of your needs. This way you don’t have to bother with maintaining master and agent instances or adding a node machine to your groovy code to run a build on a certain platform.

When you add your app to Bitrise, our project selector automatically detects the type of your project and based on its platform type, adds a default stack to it. Your first build will run on this stack, which is a virtual machine with all the required tools pre-installed on it. Should you wish to use another stack, you can simply select it from the **Default Stack** dropdown menu on the **Stacks and Machines** tab. If you click the **More information** link, you can see the preinstalled tools with their versions.
When you add your app to Bitrise, our project selector automatically detects the type of your project and based on its platform type, adds a default stack to it. Your first build will run on this stack, which is a virtual machine with all the required tools pre-installed on it. Should you wish to use another stack, you can simply select it from the **Default Stack** dropdown menu on the **Stacks & Machines** tab. If you click the **More information** link, you can see the preinstalled tools with their versions.

We support the latest Xcode version shortly after its official release.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ You can read more about adding dependencies to your Android project: [https://de
1. <Partial_OpeningTheWorkflowEditor />
1. Make sure your Workflow includes the **Android Build** <GlossTerm baseform="step">Step</GlossTerm>.

If the <GlossTerm baseform="project scanner">project scanner</GlossTerm> generated a Workflow called **deploy** when first adding your app, that Workflow includes the Step. It installs all dependencies listed in the `build.gradle` file without any additional configuration.
If the <GlossTerm baseform="project scanner">project scanner</GlossTerm> generated a Workflow called **build_apk** when first adding your app, that Workflow includes the Step. It installs all dependencies listed in the `build.gradle` file without any additional configuration.
1. Make sure your Workflow includes the **Install missing Android SDK components** Step.

The Step must be BEFORE the **Android Build** Step in the Workflow. It will install all Android SDK tool that your project might need.
Expand Down Expand Up @@ -76,7 +76,7 @@ In this section, we'll go through how to sign an Android app with the Android Si

![keystore-alias.png](/img/_paligo/uuid-0b79fc48-3861-0744-0f53-53a6c65ffc2c.png)
1. Open the <GlossTerm baseform="Workflow Editor">Workflow Editor</GlossTerm>.
1. Add the **Android Sign****Generate cordova build configuration** Step to your Workflow.
1. Add the **Android Sign** Step to your Workflow.

And that's it. The next time you'll run a build, the **Android Sign** Step will sign the generated binary.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ The **Deploy to Bitrise.io** Step exports the results of the **Flutter Test** St
To run tests on a Flutter app:

1. Open your app’s <GlossTerm baseform="workflow editor">Workflow Editor</GlossTerm> and open the **primary** Workflow, or any of your Workflows that you want to use to run tests.
1. In the **Flutter Install** Step, fill in the **Flutter SDK Version** input.
1. In the **Flutter Install** Step, fill in the **Flutter SDK version or bundle URL** input.

You can specify either tags or branches of the Flutter SDK’s git repository. The default value is `stable`. This will use the latest stable branch of Flutter.

Expand Down Expand Up @@ -188,7 +188,7 @@ The scope of this guide is the second option: signing your AAB/APK file with the
1. In the **Output (.apk, .aab) pattern** input, set the path where the **Deploy to Google Play** Step will be able to access the generated binary.

The path should be relative to the project source directory, stored in the BITRISE_SOURCE_DIR Environment Variable.
1. Make sure you have the **Deploy to Google Play** Step after the **Android Sign****Cordova Archive** or **Ionic Archive** Step in your Workflow.
1. Make sure you have the **Deploy to Google Play** Step after the **Android Sign** Step in your Workflow.
1. Fill out the required input fields as follows:

- **Service Account JSON key file path**: This field can accept a remote URL so you have to provide the Env Var which contains your uploaded service account JSON key. For example: `$BITRISEIO_SERVICE_ACCOUNT_JSON_KEY_URL`.
Expand Down
Loading
Loading