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

テスターへのビルドの配布

ビルドアーティファクトをRelease Managementにアップロードし、APIを使ってテスターグループに直接配布できます。テスターグループには、Bitriseのユーザーをuser slugで追加する内部グループと、テスターをメールアドレスで追加する外部グループ(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)のファイルです。前のレスポンスで返された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フィールドの両方が含まれます。他の呼び出しではARTIFACT_IDとしてuidを使用してください。idは別の識別子であり、このページのエンドポイントでは使用できません。

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

ビルドを公開URL経由で利用可能にすると、テスターはBitriseアカウントなしで直接開けます。

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文字まで入力できます。

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

注記

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

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クエリパラメータを設定して、内部グループ(Bitriseのユーザーをuser slugで追加)か外部グループ(テスターをメールアドレスで追加、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を設定すると、新しいビルドがアップロードされた際にテスターへ自動的にメールが送信されます。

グループへのテスターの追加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"