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

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

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

概要

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アセットの名前を入力します
    passwordiOS開発者証明書のパスワード

応答

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アセットの名前を入力します
    passwordiOS開発者証明書のパスワード

応答:

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 サーバーエラー

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

トップに戻る