Unity Cloud Buildから不要なProvisioning Credentialを削除する

# Unity Cloud Buildの設定からProvisioning Credentialが消せない

みんな大好きUnity Cloud Build。iOS向けにビルドする際は、Mobile Provisioning FileとApp Development証明書(.p12)を登録する必要があります。
Cloud Buildではこの２つのセットを「Provisioning Credentials」と呼んでいますが、証明書類は開発用・配布用・AdHocなど用途に合わせて複数作る必要があります。もちろん有効期限が切れたら再作成です。つまりはいっぱい作るわけですが、このProvisioning Credential、Unity Cloud Buildの管理画面から追加はできても修正・削除することができません。

で、こうなります。

![Credentials.png](https://qiita-image-store.s3.amazonaws.com/0/19010/c8d1b452-1eb1-b116-8b04-0e703532f799.png)

このようにProvisioning Credentialは延々と増え続け、目的のファイルが大変見つけにくくなります。
期限が切れたり間違ったりしたやつが残り続けてたりするのはちょっといただけません。

# 結論から

Unity Cloud BuildのREST API "Delete iOS Credentials"を叩く。

https://build-api.cloud.unity3d.com/docs/1.0.0/index.html#operation--orgs--orgid--projects--projectid--credentials-signing-ios--credentialid--delete

REST APIの操作に慣れている方は、こちらをご利用ください。
以降はシェルって何？ターミナル操作するのやだー！という人向けの方法を紹介します。

# Unity Cloud BuildをREST API経由で叩けば消せる

"How to delete Credentials from cloud build"とかでググっていたら、次のフォーラムが見つかりました。

Cloud Build should be able to remove/edit credentials
https://forum.unity3d.com/threads/cloud-build-should-be-able-to-remove-edit-credentials.373029/

Unity Technologies Austinのdannyd氏曰く、Unity Cloud BuildはAPIがあるからそれ叩いてね、というお話でした。
で、Unity Cloud Build APIを開設しているこちらのページ。

https://build-api.cloud.unity3d.com/

何とこのページから **直接APIを叩くことができます。** ブラウザからの操作だけで行けるんですか！ターミナル叩かなくていいんですか！やったー！

# ターミナルを叩かずにProvisioning Credentialを消す

## APIキーを取得・設定する
まずは自分のUnity IDに紐づいたAPIキーを見つけてきます。

キーはCloud Build Preferencesの一番下から取得できます。
https://developer.cloud.unity3d.com/preferences/

![APIキーの取得.png](https://qiita-image-store.s3.amazonaws.com/0/19010/8417ac8f-5e5b-1b7f-48e3-bec7d6edd02c.png)

https://build-api.cloud.unity3d.com/ の左上にAPIキーを設定する箇所がありますので、コピペします。

![APIキーの設定.png](https://qiita-image-store.s3.amazonaws.com/0/19010/8990fcac-213a-d8b4-a202-fe5105c62e9f.png)

## CredentialIDを取得する

Provisioning Credentialを消すには、Organization identifier, Project identifier, Credential Identifierの指定が必要です。
まずは、消したいProvisioning CredentialのIDを取得します。

Get All iOS Credentials
https://build-api.cloud.unity3d.com/docs/1.0.0/index.html#operation--orgs--orgid--projects--projectid--credentials-signing-ios-get

![GetAlliOSCredentials.png](https://qiita-image-store.s3.amazonaws.com/0/19010/c692543f-181d-eb3f-0f83-9703f082ec3c.png)

Organization identifierはUnity ID上のOrganizationの名前でOKです。
Project IDはどれでもかまいませんので何かプロジェクトのダッシュボードにUPID： として記載されています。

![ProjectIDの取得.png](https://qiita-image-store.s3.amazonaws.com/0/19010/c46c351b-c014-e220-77ba-75967596c220.png)

2つを貼り付けて「Send Request」をクリックすると処理が実行され、Credentialの情報がズラーッと表示されます。
(この2つはDelete実行時も使うので、メモ帳か何かにペーストしておきましょう。)

![IDCredential.png](https://qiita-image-store.s3.amazonaws.com/0/19010/c16f7835-c368-37cf-ebb0-f6a7a8f5d2a0.png)

その中にCredentialidという項目があります。これがIDですので、消したいものをメモっておきます。

## Delete iOS Credentialを実行する
いよいよ削除です。

Delete iOS Credential
https://build-api.cloud.unity3d.com/docs/1.0.0/index.html#operation--orgs--orgid--projects--projectid--credentials-signing-ios--credentialid--delete

Organization identifier, Project identifier, Credential Identifierを入力して「Send Request」をクリックします。

Responseは空なのですが、実行後に改めてiOSのビルド設定に行けば、指定したCredentialが消えていることを確認できるはずです。
おつかれさまでした！

# ほんとはREST APIちゃんと叩いたほうが良い

表題の通りです。
Get All iOS Credentialsでは有効日や作成日、中身のプロビジョニングがなんであるかなどの情報が取れますので、REST APIによる操作を使いこなせるようになれば条件に応じてまるっと削除、などもできそうです。
というか普通にUnity IDのメニュー画面から削除・編集ができるようになってほしい....