iOSエージェントに署名するためのAPI

このトピックでは、API呼び出しを使用して、複数のAppleアカウントでエージェントアプリに自動的に署名する方法について説明します。その後、デバイスごとに異なるiOSアカウントを使用できます。このトピックは、UFT Digital Labにのみ関連します。

注: これらのAPIは、Digital Labの将来のバージョンで変更され、下位互換性が失われる可能性があります。

概要

APIを使用して、プロビジョニングプロファイルとiOS証明書をアップロードすることでアセットセットを作成します。セットが作成されると、アップロードしたファイルを使用してエージェントアプリが自動的に再署名され、アセットセットが接続されているすべてのコネクターに配布されます。アセットセットには、新しく署名されたエージェントアプリとUDIDのリストが含まれています。新規または更新されたアセットセットがコネクターに配布された後、UFT Digital Labサーバーに接続されていないデバイスは、新しく配布されたエージェントとの接続を再試行します。

前提条件

iOS用の自動アプリパッケージングおよび署名サービスを設定していることを確認してください。詳細については、自動署名サービスを参照してください。

トップに戻る

ログイン

セッションの最初のREST APIリクエストは、ログインリクエストである必要があります。詳細については、REST APIドキュメントの「Log in」を参照してください。

後続のAPIリクエストには、ログイン応答ヘッダーのx-hp4msecretとcookieを使用します。

トップに戻る

アセットセットの作成

これにより、Digital Labサーバー上にアセットセットが作成されます。アセットセットは、署名済みエージェントアプリと、アプリをインストールできるデバイスのリストで構成されます (エージェントの署名に使用されるプロビジョニングプロファイルから取得)。既存のアセットセットを更新するには、アセットセットの更新を呼び出します。

メソッド: POST /rest/v2/assets

要求本文: マルチパート

  • iOS開発者証明書と一致するプロビジョニングプロファイルを含むファイルアプリケーション/オクテットストリームzipファイル。証明書とプロビジョニングプロファイルのteamIDは同じである必要があります。
  • assetDetails application/json {"name":"name","password":"123456"}.
    nameアセットの名前を入力します
    passwordiOS開発者証明書のパスワード

応答

200 成功
400 要求の形式が正しくありません。名前はすでに存在します、無効な証明書またはプロビジョニングプロファイル
500 サーバーエラー

本文 (例):

{

"name":"name",

"teamId":"xxx",

"certificateExpirationDate":"xxxx",

"udid":[

"udid1",

"udid2"

],

“signingId”:”dddd-ddd”

}

アップロードされたファイルはエージェントアプリの署名に使用され、アセットセットは自動API呼び出しを介して接続されたコネクターに配布されます。署名IDは、署名のステータスとコネクターへのアプリの配布を識別するために使用できます。

トップに戻る

アセットセットの更新

アセットセットの証明書とプロビジョニングプロファイルを変更します。アセットセットを変更すると、エージェントが新しいアセットで再署名され、Digital Labサーバーに接続されているすべてのコネクターに配布されます。

メソッド: PUT /rest/v2/assets

要求本文: マルチパート

  • iOS開発者証明書と一致するプロビジョニングプロファイルを含むファイルアプリケーション/オクテットストリームzipファイル。証明書とプロビジョニングプロファイルのteamIDは同じである必要があります。
  • assetDetails application/json {"name":"name","password":"123456"}.
    nameアセットの名前を入力します
    passwordiOS開発者証明書のパスワード

応答:

200 成功
400 要求の形式が正しくありません。名前、無効な証明書、またはプロビジョニングプロファイルでアセットが見つかりません
500 サーバーエラー

本文 (例):

{

"name":"name",

"teamId":"xxx",

"certificateExpirationDate":"xxxx",

"udid":[

"udid1",

"udid2"

],

“signingId”:”dddd-ddd”

}

トップに戻る

アセットセットの削除

不要になったアセットセットを削除します。アセットセットは、Digital Labサーバー、およびコネクターから削除されます。削除されたアセットセットのエージェントを使用している接続されたデバイスは切断されません。

メソッド: DELETE /rest/v2/assets/{name}

要求本文: 本文なし

応答:

200 成功
400 アセットが存在しません
500 サーバーエラー

Body: 応答本文はありません。

トップに戻る

すべてのアセットセットの詳細の取得

すべてのアセットセットの名前、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/コネクター/signedAssets

要求本文: 本文なし

応答:

200 成功
500 サーバーエラー

本文: 応答本文はありません。

トップに戻る