メインコンテンツまでスキップ

テスターへのビルド配布

ビルドのアーティファクトをRelease Managementにアップロードし、APIを通じてテスターグループに直接配布できます。テスターグループは、内部グループ(user slugで追加するBitriseユーザー)または外部グループ(メールアドレスで追加するテスター。Bitriseアカウントは不要)のいずれかです。ここでは、アーティファクトのアップロードフロー(Apps サブAPI)とテスターグループの管理(Build Distributions サブAPI)の両方を扱います。

ビルドアーティファクトのアップロードClick to copy link​

エンドポイントサブAPI機能
GET /installable-artifacts/{id}/upload-urlApps署名付きアップロードURLを生成します。
GET /installable-artifacts/{id}/statusAppsアップロードと処理のステータスを確認します。
GET /installable-artifactsAppsアプリのアップロード済みアーティファクトを一覧表示します。
GET /installable-artifacts/{id}Appsアーティファクトの詳細を取得します。
DELETE /installable-artifacts/{id}Appsアーティファクトを削除します。

Step 1: アップロードURLを生成するClick to copy link​

ビルドのアーティファクト用に、署名付きS3アップロードURLを生成します。レスポンスには、アップロードURLが含まれ、アーティファクトIDも確認できます。

ARTIFACT_ID=$(uuidgen | tr '[:upper:]' '[:lower:]')

curl -X GET "https://api.bitrise.io/release-management/v2/apps/v1/installable-artifacts/${ARTIFACT_ID}/upload-url?app_id=APP_ID&file_name=MyApp.ipa&file_size_bytes=52428800" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Accept: application/json"

必須のクエリパラメーター:

  • app_id: RMアプリのID。
  • file_name: アーティファクトのファイル名(例: MyApp.ipa または MyApp.apk)。
  • file_size_bytes: ファイルサイズ(バイト単位)。

オプションのクエリパラメーター:

  • with_public_page: trueに設定すると、公開インストールページがすぐに有効になります。
  • branch: このビルドのsource branch。
  • workflow: このビルドを生成したCIワークフロー。

Step 2: バイナリをアップロードするClick to copy link​

.ipa(iOS)、.apk、.aab(Android)のファイルをアップロードできます。テスターグループに送信できるのは、配布可能なビルドのみです。つまり、.apkファイルと、App Store向けにエクスポートされていない.ipaファイルです。.aabファイルとApp Store向けにエクスポートされた.ipaファイルは保存されますが、テスターには配布できません。前のレスポンスで返されたmethod、url、headersは、返された内容のまま使用してください。ヘッダーはアップロードごとに異なり、通常はContent-TypeとX-Goog-Content-Length-Rangeが含まれます。

# Use the method, url, and headers exactly as returned by the Step 1 response.

curl -X PUT "PRESIGNED_UPLOAD_URL" \
-H "Content-Type: <value from response headers>" \
-H "X-Goog-Content-Length-Range: <value from response headers>" \
--data-binary "@/path/to/MyApp.aab"

Step 3: 処理ステータスを確認するClick to copy link​

アップロード後、Bitriseがアーティファクトの処理を完了するまで待ちます。

curl -X GET "https://api.bitrise.io/release-management/v2/apps/v1/installable-artifacts/${ARTIFACT_ID}/status" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Accept: application/json"

レスポンスには現在のstatusが返されます。ステータスがアーティファクトの配布準備完了を示すまで、このエンドポイントをポーリングしてください。

インストール可能なアーティファクトの一覧表示Click to copy link​

自分でアップロードしたものではないアーティファクトを操作するには、GET /installable-artifactsで検索します。

curl -X GET "https://api.bitrise.io/release-management/v2/apps/v1/installable-artifacts?app_id=APP_ID&items_per_page=10&page=1" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Accept: application/json"
idではなくuidを使用する

レスポンスの各項目には、idフィールドとuidフィールドの両方が含まれます。他の呼び出しでは、uidをARTIFACT_IDとして使用してください。idは別の識別子であり、このページのエンドポイントでは機能しません。

公開インストールページの有効化Click to copy link​

Bitriseアカウントがなくてもテスターが直接開ける公開URLを通じて、ビルドを利用可能にできます。

curl -X PATCH "https://api.bitrise.io/release-management/v2/apps/v1/installable-artifacts/ARTIFACT_ID/public-install-page" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"with_public_page": true
}'

テスト内容メモの追加Click to copy link​

テスターが通知を受け取ったときに確認できるテスト手順を、ビルドに添付します。

curl -X PATCH "https://api.bitrise.io/release-management/v2/apps/v1/installable-artifacts/ARTIFACT_ID/what-to-test" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"what_to_test": "Focus on the new onboarding flow. Check that the splash screen animation completes before login."
}'

what_to_testフィールドには、最大4,000文字まで指定できます。

カスタムアクセスリンクを使用すると、アクセスを制限してビルドを共有できます。コードによる保護や有効期限の設定も任意で行えます。詳細については、カスタムアクセスリンクを参照してください。

注記

カスタムアクセスリンクは、公開インストールページのリンクとは異なります。公開インストールページは恒久的で、アクセス制御はありません。

curl -X POST "https://api.bitrise.io/release-management/v2/apps/v1/installable-artifacts/ARTIFACT_ID/custom-access-links" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "External QA team",
"expires_at": "2026-07-31T23:59:59Z",
"access_code": "qa-team-2026"
}'

access_codeは8〜64文字である必要があります。有効期限のないリンクを作成するには、expires_atを省略してください。

テスターグループの管理Click to copy link​

テスターグループを使用すると、新しいビルドの準備ができたときに内部テスターのグループへ通知できます。詳細については、テスターグループを参照してください。

エンドポイント機能
POST /tester-groupsテスターグループを作成します。
GET /tester-groupsアプリのテスターグループを一覧表示します。
PUT /tester-groups/{id}テスターグループを更新します。
POST /tester-groups/{id}/add-testersグループにテスターを追加します。
POST /tester-groups/{id}/notify新しいビルドについてグループに通知します。
DELETE /tester-groups/{id}テスターグループを削除します。

テスターグループの作成Click to copy link​

typeクエリパラメーターを設定して、内部グループ(user slugで追加するBitriseユーザー)と外部グループ(メールアドレスで追加するテスター。Bitriseアカウントは不要)のどちらにするかを選択します。typeを省略した場合のデフォルトはinternalです。

curl -X POST "https://api.bitrise.io/release-management/v2/build-distributions/v1/tester-groups" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"app_id": "APP_ID",
"name": "iOS Beta Testers",
"auto_notify": true
}'

内部グループでauto_notify: trueを設定すると、配布可能な新しいビルドがアップロードされたときに、テスターへ自動的にメールが送信されます。外部グループはauto_notifyをサポートしていません。常にfalseとなり、送信してもこのフィールドは無視されます。外部テスターに通知するには、グループのtester_group_idを指定してカスタムアクセスリンクを作成してください。

グループへのテスターの追加Click to copy link​

グループのタイプに合わせてtypeクエリパラメーターを設定してください。typeを省略した場合のデフォルトはinternalです。グループのタイプに合わない配列は無視されます。

curl -X POST "https://api.bitrise.io/release-management/v2/build-distributions/v1/tester-groups/GROUP_ID/add-testers" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user_slugs": ["USER_SLUG_1", "USER_SLUG_2"]
}'
user slugの確認

workspaceメンバーのuser slugを確認するには、GET /tester-groups/{id}/potential-testers?search=name-or-emailを使用して対象となるテスターを検索します。レスポンスには各ユーザーのslugが含まれます。

テスターグループへの通知Click to copy link​

特定のビルドについて、テスターグループに通知を送信します。

curl -X POST "https://api.bitrise.io/release-management/v2/build-distributions/v1/tester-groups/GROUP_ID/notify" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"test_build_id": "ARTIFACT_ID"
}'

テスターに通知する前に、ビルドが配布可能な状態になっている必要があります。呼び出しが成功すると、204 No Contentが返されます。

アップロード済みビルドの一覧表示Click to copy link​

特定のバージョンで配布可能なすべてのビルドを一覧表示するには、次のようにします。

curl -X GET "https://api.bitrise.io/release-management/v2/build-distributions/v1/test-builds?app_id=APP_ID&version=1.5.0" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Accept: application/json"