[iOS]1年に1回のadhocの証明書更新を毎回忘れるので手順をまとめました

# はじめに
こんにちは、開発部のCLです。
今回はadhocの証明書更新手順についてまとめました。
<br/>
adhocの有効期限は1年に1回必要なんですが、
ややこしいし、期間が空きすぎて毎回忘れてしまいます...。
備忘録として手順を残しておきます。
<br/>
まず、ざっくりと手順は以下の通り。
| ステップ | 作業場所 |
|:--|:--|
| 1. CSRを作成 | あなたのMac（※以前作成したCSRが残っていれば作成不要） |
| 2. CSRからCERを作成 | Apple Developer |
| 3. CERからProvisioning Profileを作成 | Apple Developer |
| 4. Provisioning Profileをアプリに設定 | Xcode |
| 5. Ad Hoc作成 | Xcode|

順に追っていきます！


# 1.csrの作成(以前作成したcsrが残っていれば作成不要) @ Mac

:::note info
超ざっくり解説
CSRとは各々のmacに発行される証明書の作成に必要なファイル。他のmacでは使えないよ。
:::
:::note warn
1回自分のcsr作ってしまえば来年も使いまわせるので今回作成したcsrは
わかりやすい場所に保存しておきましょう。
:::
<br/>

キーチェーンアクセスを起動し、
[認証局に証明書を要求]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/e633c850-9d13-96be-41c9-2b3fdb9bef47.png)
<br/>
・apple developerに登録されているメールアドレス
・通称はなんでもOK
・CAのメールアドレスは空欄
・ディスクに保存&鍵ペア情報を指定を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/ee846a08-000e-f8b5-45a1-0e2cdfa4b21d.png)
<br/>
2048ビット/RSAを指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/a48472c0-a3ec-48d5-4f41-5ac49ffee56c.png)

そしたら[CertificateSigningRequest.certSigningRequest]
というファイルが保存される。
これがCSR。

# 2.csrからcerを作成 @ Apple Developer
Apple Developerへ移動しログイン

https://developer.apple.com/

<br/>
Certificatesのプラスマークを押すと作成画面に切り替わる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/cf8786ff-6f81-8058-d2e9-5753835c2453.png)

<br/>

iOS Distribution (App Store Connect and Ad Hoc)を選択し次へ進む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/47bbe626-a123-3964-b838-51a8a2b437f0.png)

<br/>

1.で作成したcsrを選択して次へ進むとcer[ios_distribution.cer]が作成される。
**ダウンロードしたcerはダブルクリックをしてキーチェーンアクセスに読み込んでおきましょう**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/92a2df38-43e3-0779-41b0-d4ea20ccb837.png)

# 3.cerからProvisioningProfile作成 @ Apple Developer
Profilesのプラスマークを押すと作成画面に切り替わる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/f30def7c-8d31-7ba3-8176-0bbf550b9770.png)

<br/>

Ad Hocを選択して次へ進む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/94e54fa4-bd27-0779-a1db-4058b8b1f61b.png)

<br/>

Adhocを作成したいアプリのbundle IDを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/4500f15c-1fe5-4447-5325-0d881873ee38.png)

<br/>

2で作成したcsrが選択できるようになっているので、選択して次へ進むと
プロビジョニングプロファイルが作成される。
xcodeで使用するのでダウンロードしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/e0b2ed70-7bea-9425-8d5c-8a1afd6d7af6.png)

## 4.Provisioning Profileをアプリに設定 @ xcode
xcodeを開き3で作成したProvisioningProfileを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/640cc475-a59e-c909-6a07-522fcbf90d86.png)

<br/>

:::note warn
一口メモ
doesn't include signing certificat~みたいな
証明書のエラーが発生することがあります。
(私はよく発生して悩まされてます)

・キーチェーンに保存されている不要な証明書を削除
　(必要な証明書を削除しないようにご注意)
・xcodeのキャッシュを削除
・xcodeの再起動
毎回上記のようなことをごにゃごにゃしているといつの間にかエラーが消えてます。
それでもダメなら再度証明書を作成し直すと解決することがあります。
:::
## 5.adhoc作成 @ xcode
ビルド端末は[Any iOS Device]を選択して
[Product]>[Archive]を選択するとadhocの作成が始まります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/b49cfc13-6e31-d6f4-075b-af5ff50affee.png)

<br/>

ビルドが完了したらDistribute Appを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/66827924-d60e-6a99-8d87-8b3d488a141d.png)

Customを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/d84ee912-de65-523c-dea4-50fc046b11f0.png)

<br/>

Release Testingを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/0a055741-a0bf-07f1-5957-e189bbc8b785.png)

<br/>

Nextを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/008c299b-fe8a-b515-9bcd-62ac7243ac3e.png)

<br/>

[select profile]欄を作成したprovisioning profileを指定して次へ進み、
[Export]を選択するとアプリのフォルダが出力されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3517332/7a627b6a-264b-0619-86fb-c9cee2569730.png)

# まとめ

ざっくりですが、手順は以上となります。
csr→cer→provisioning profileの流れで証明書を作ることになります。

<br/>

はつかぜ株式会社では、IT学習や業務に役立つ情報を定期的にお届けしていきたいと思っています。
システム開発のお問い合わせ・ご相談はこちら

https://www.hatsukaze.co.jp/