iOSエージェントに署名するためのAPI
このトピックでは、API呼び出しを使用して、複数のAppleアカウントでエージェントアプリに自動的に署名する方法について説明します。その後、デバイスごとに異なるiOSアカウントを使用できます。
注: これらのAPIは、OpenText Functional Testing Labの将来のバージョンで変更され、下位互換性が失われる可能性があります。
このセクションは、OpenText Core SDPおよびOpenText Core Functional Testing Labには関連していません。
概要
APIを使用して、プロビジョニングプロファイルとiOS証明書をアップロードすることでアセットセットを作成します。セットが作成されると、アップロードしたファイルを使用してエージェントアプリが自動的に再署名され、アセットセットが接続されているすべてのコネクターに配布されます。アセットセットには、新しく署名されたエージェントアプリとUDIDのリストが含まれています。新規または更新されたアセットセットがコネクターに配布された後、OpenText Functional Testing Labサーバーに接続されていないデバイスは、新しく配布されたエージェントとの接続を再試行します。
前提条件
iOS用の自動アプリパッケージングおよび署名サービスを設定していることを確認してください。詳細については、自動署名サービスを参照してください。
ログイン
セッションの最初のREST API要求は、ログイン要求である必要があります。詳細については、REST APIリファレンスの「Log in」を参照してください。
後続のAPI要求には、ログイン応答ヘッダーのx-hp4msecretとcookieを使用します。
アセットセットの作成
これにより、OpenText Functional Testing Labサーバー上にアセットセットが作成されます。アセットセットは、署名済みエージェントアプリと、アプリをインストールできるデバイスのリストで構成されます (エージェントの署名に使用されるプロビジョニングプロファイルから取得)。既存のアセットセットを更新するには、アセットセットの更新を呼び出します。
メソッド: 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は、署名のステータスとコネクターへのアプリの配布を識別するために使用できます。
アセットセットの更新
アセットセットの証明書とプロビジョニングプロファイルを変更します。アセットセットを変更すると、エージェントが新しいアセットで再署名され、OpenText Functional Testing Labサーバーに接続されているすべてのコネクターに配布されます。
メソッド: 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”
}
アセットセットの削除
不要になったアセットセットを削除します。アセットセットは、OpenText Functional Testing Labサーバー、およびコネクターから削除されます。削除されたアセットセットのエージェントを使用している接続されたデバイスは切断されません。
メソッド: DELETE /rest/v2/assets/{name}
要求本文: 本文なし
応答:
ステータス | 詳細 |
---|---|
200 | 成功 |
400 | アセットが存在しません |
500 | サーバーエラー |
本文: 応答本文はありません。
すべてのアセットセットの詳細の取得
すべてのアセットセットの名前、teamID、証明書の有効期限、およびデバイスUDIDのリストを取得します。
メソッド: /rest/v2/assetsを取得する
要求本文: 本文なし。
応答:
ステータス | 詳細 |
---|---|
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
要求本文: 本文なし。
応答:
ステータス | 詳細 |
---|---|
200 | 成功 |
500 | サーバーエラー |
本文 (例):
["udid1","udid2","udid3","udid4"]
署名と配布のステータスを取得
signingIdによって設定されたアセットのステータスを取得します。signingIdは、アセットセットを作成または更新するときに応答本文にあります。4つの状態があります: Idle、signing、distributed、ended。
メソッド: GET /rest/signing/{signingId}/status/
要求本文: 本文なし。
応答:
ステータス | 詳細 |
---|---|
200 | 成功 |
500 | サーバーエラー |
本文 (例):
{"messageCode":0,
"message":"0",
"signingId":"xxxx",
"state":"DISTRIBUTING"}
署名されたアセットを特定のコネクターに配布
このAPIを手動で呼び出す必要はありません。アセットセットを作成または更新すると、そのアセットセット内のエージェントが自動的に署名され、アセットセットが接続されているすべてのコネクターに配布されます。
メソッド: PUT rest/v2/connectors/{connectorId}/signedAssets
要求本文: 本文なし
応答:
ステータス | 詳細 |
---|---|
200 | 成功 |
500 | サーバーエラー |
本文: 応答本文はありません。
新しく署名されたエージェントの配布
新しいアセットセットを作成した後、または既存のアセットセットを更新した後、エージェントアプリに再署名するときに、アセットセットをすべてのコネクターに配布します。このAPIを手動で呼び出す必要はありません。アセットセットを作成または更新すると、そのアセットセット内のエージェントが自動的に署名され、アセットセットが接続されているすべてのコネクターに配布されます。
メソッド: PUT rest/v2/connectors/signedAssets
要求本文: 本文なし
応答:
ステータス | 詳細 |
---|---|
200 | 成功 |
500 | サーバーエラー |
本文: 応答本文はありません。