iOSエージェントに署名するためのAPI
このトピックでは、API呼び出しを使用して、複数のAppleアカウントでエージェントアプリに自動的に署名する方法について説明します。その後、デバイスごとに異なるiOSアカウントを使用できます。
注: これらのAPIは、UFT Mobileの将来のバージョンで変更され、下位互換性が失われる可能性があります。
このトピックの内容:
- 概要
- 前提条件
- ログインする
- アセットセットを作成する
- アセットセットを更新する
- アセットセットを削除する
- すべてのアセットセットの詳細を取得する
- すべてのアセットセットからUDIDを取得する
- 署名と配布のステータスを取得する
- 署名されたアセットを特定のコネクターに配布する
- 新しく署名されたエージェントを配布する
概要
APIを使用して、プロビジョニングプロファイルとiOS証明書をアップロードすることでアセットセットを作成します。セットが作成されると、アップロードしたファイルを使用して4つのエージェントアプリが自動的に再署名され、アセットセットが接続されているすべてのコネクターに配布されます。アセットセットには、新しく署名されたエージェントアプリとUDIDのリストが含まれています。新規または更新されたアセットセットがコネクターに配布された後、UFTMサーバーに接続されていないデバイスは、新しく配布されたエージェントとの接続を再試行します。
前提条件
iOS用の自動アプリパッケージングおよび署名サービスを設定していることを確認してください。詳細については、自動署名サービスを参照してください。
ログインする
セッションの最初のREST APIリクエストは、ログインリクエストである必要があります。詳しくはログインをご覧ください。
後続のAPIリクエストには、ログイン応答ヘッダーのx-hp4msecretとcookieを使用します。
アセットセットを作成する
これにより、UFTMサーバー上にアセットセットが作成されます。アセットセットは、4つの署名済みエージェントアプリと、アプリをインストールできるデバイスのリストで構成されます(エージェントの署名に使用されるプロビジョニングプロファイルから取得)。既存のアセットセットを更新するには、アセットセットを更新するを呼び出します。
メソッド: POST /rest/v2/assets
要求本文: マルチパート
- iOS開発者証明書と一致するプロビジョニングプロファイルを含むファイルアプリケーション/オクテットストリームzipファイル。証明書とプロビジョニングプロファイルのteamIDは同じである必要があります。
- assetDetails application/json {"name":"name","password":"123456"}.
name アセットの名前を入力します password iOS開発者証明書のパスワード
応答
200 | 成功 |
400 | 要求の形式が正しくありません。名前はすでに存在します、無効な証明書またはプロビジョニングプロファイル |
500 | サーバーエラー |
本文 (例):
{
"name":"name",
"teamId":"xxx",
"certificateExpirationDate":"xxxx",
"udid":[
"udid1",
"udid2"
],
“signingId”:”dddd-ddd”
}
アップロードされたファイルはエージェントアプリの署名に使用され、アセットセットは自動API呼び出しを介して接続されたコネクターに配布されます。署名IDは、署名のステータスとコネクターへのアプリの配布を識別するために使用できます。
アセットセットを更新する
アセットセットの証明書とプロビジョニングプロファイルを変更します。アセットセットを変更すると、4つのエージェントが新しいアセットで再署名され、UFT Mobileサーバーに接続されているすべてのコネクターに配布されます。
メソッド: PUT /rest/v2/assets
要求本文: マルチパート
- iOS開発者証明書と一致するプロビジョニングプロファイルを含むファイルアプリケーション/オクテットストリームzipファイル。証明書とプロビジョニングプロファイルのteamIDは同じである必要があります。
- assetDetails application/json {"name":"name","password":"123456"}.
name アセットの名前を入力します password iOS開発者証明書のパスワード
応答:
200 | 成功 |
400 | 要求の形式が正しくありません。名前、無効な証明書、またはプロビジョニングプロファイルでアセットが見つかりません |
500 | サーバーエラー |
本文 (例):
{
"name":"name",
"teamId":"xxx",
"certificateExpirationDate":"xxxx",
"udid":[
"udid1",
"udid2"
],
“signingId”:”dddd-ddd”
}
アセットセットを削除する
不要になったアセットセットを削除します。アセットセットは、UFT Mobileサーバー、およびコネクターから削除されます。削除されたアセットセットのエージェントを使用している接続されたデバイスは切断されません。
メソッド: DELETE /rest/v2/assets/{name}
要求本文: No body
応答:
200 | 成功 |
400 | アセットが存在しません |
500 | サーバーエラー |
Body: 応答本文はありません。
すべてのアセットセットの詳細を取得する
すべてのアセットセットの名前、teamID、証明書の有効期限、およびデバイスUDIDのリストを取得します。
メソッド: /rest/v2/assetsを取得する
要求本文: No body.
応答:
200 | 成功 |
500 | サーバーエラー |
本文 (例):
[
{
"name":"name",
"teamId":"xxx",
"ExpirationDate":"xxxx",
"udids":[
"udid1",
"udid2"
]
}
{
"name":"name2",
"teamId":"xyz",
"ExpirationDate":"xxxx",
"udids":[
"udid3",
"udid4"
]
}
すべてのアセットセットからUDIDを取得する
すべてのアセットセットからすべての一意のデバイスID(UDID)のリストを取得します。
メソッド: GET /rest/v2/assets/udid
要求本文: No body.
応答:
200 | 成功 |
500 | サーバーエラー |
本文 (例):
["udid1","udid2","udid3","udid4"]
署名と配布のステータスを取得する
signingIdによって設定されたアセットのステータスを取得します。signingIdは、アセットセットを作成または更新するときに応答本文にあります。4つの状態があります: Idle、signing、distributed、ended。
メソッド: GET /rest/signing/{signingId}/status/
要求本文: No body.
応答:
200 | 成功 |
500 | サーバーエラー |
本文 (例):
{"messageCode":0,
"message":"0",
"signingId":"xxxx",
"state":"DISTRIBUTING"}
署名されたアセットを特定のコネクターに配布する
このAPIを手動で呼び出す必要はありません。アセットセットを作成または更新すると、そのアセットセット内のエージェントが自動的に署名され、アセットセットが接続されているすべてのコネクターに配布されます。
メソッド: PUT rest/v2/connectors/{connectorId}/signedAssets
要求本文: No body
応答:
200 | 成功 |
500 | サーバーエラー |
本文: 応答本文はありません。
新しく署名されたエージェントを配布する
新しいアセットセットを作成した後、または既存のアセットセットを更新した後、エージェントアプリに再署名するときに、アセットセットをすべてのコネクターに配布します。このAPIを手動で呼び出す必要はありません。アセットセットを作成または更新すると、そのアセットセット内のエージェントが自動的に署名され、アセットセットが接続されているすべてのコネクターに配布されます。
メソッド: PUT rest/v2/コネクター/signedAssets
要求本文: No body
応答:
200 | 成功 |
500 | サーバーエラー |
本文: 応答本文はありません。