iOSアプリ委託開発でのAdHocリリース手順まとめ（アカウント作成編）

# はじめに
委託開発でiOSアプリの開発を行っている方向けのAdHocリリース方法の手順をまとめました。初心者向けの内容になっています。

iOS開発では、アプリをリリースするためにApple Developer Programに登録する必要があります。Apple Developer Programには個人用と法人用があり、顧客用の業務アプリ開発などで開発を委託されている状況だと、法人用ラインセンスは顧客が保有することになるため、顧客作業が度々発生します。初めてのiOSアプリ開発案件で、作業の全貌が見えず苦労したので、リリース方法に関わる手順をまとめています。

ライセンス体系や配布方法については特に説明しませんので、こちらのサイトなど参考にしてください。
参考：[iOSライセンス＆配布方法まとめ](https://qiita.com/isaac-otao/items/126bced83d9af86c7ce5)

# 対象読者

- iOSアプリ開発に関して初心者
- iOSアプリの委託開発を請け負うことになったがリリース時の具体的な作業がよくわからない
- AdHocのリリースをしたいが作業がわからない（次記事がメインです→[iOSアプリ委託開発でのAdHocリリース手順まとめ（配布編）](https://qiita.com/j-kimu/items/384dff238b62045e9ea9)）

# 前提条件

開発環境は以下です。

- macOS Mojave 10.14.5
- Xcode 11.3
- iOS 13.3.1

ライセンスの状態は以下です。

- 法人用のApple Developer Programを利用（個人用やEnterpriseでない）
- 委託開発（ライセンス保持が他社）

案件の概要は以下です。

- 顧客の社内で利用するiOSアプリの委託開発
- 社内利用かつ利用台数も少ないため、配布方法にAdHocを選択
- 利用したMacは顧客から借用

# リリース手順

全体の手順は以下です。

1. [AppleIDの作成](#1apple-idの作成)
2. [チームメンバに追加【アカウント管理者】](#2チームメンバに追加)
3. [権限の付与【アカウント管理者】](#3権限の付与)
4. [アカウント情報の確認](#4アカウント情報の確認)
5. プロビジョニングプロファイルの作成と適用
6. 端末への配布

本記事は、初めてのリリース時のみ実施する作業である、1〜4を記載しています。
5〜6はプロビジョニングプロファイルの有効期限(1年)が来るたびに実施する必要がありますので、実質、毎年発生する作業です。こちらは別記事でまとめます（作業中）。

## 1.Apple IDの作成
開発用のApple IDを作成してください。
顧客のライセンスの傘下に入れてもらうので、会社用のメールアドレスでアカウントを作成するとよいでしょう。
個人の開発用アカウントの場合、会社を退職したり部署異動で担当者が変わったりした場合に、個人のアカウントでずっとアクセスされてしまうような状況が発生しかねないので、セキュリティ上よろしくないです。
また、会社のメールアドレスで登録しておくと、顧客側のアカウント管理者が「この名前の人、誰だろう？」となった際に、メールアドレスから判別しやすくなるため、管理の面でもメリットがあります。

作成方法：[新しいAppleIDを作成する方法-Appleサポート]( https://support.apple.com/ja-jp/HT204316)

## 2.チームメンバに追加
Apple Developer Programのアカウント管理者にチームメンバに招待してもらいましょう。
作成したApple IDを伝えてください。

チームメンバーに招待されると、登録したメールアドレスにApple Developerから通知が届きます。
メールのタイトルは「You're invited to join a development team.」で、メール本文に招待されたチームの名前が記載されているので内容を確認して、問題なければ、「Accept invitation」というリンクをクリックして、招待を受理してください。

:warning: 招待メールは期限があるのですぐ対応しましょう！また、招待メールが受理されないと、アカウント管理者は以降の作業が実施できませんので、アカウント管理者のためにも早めに対応しましょう。

## 3.権限の付与
Apple Developer Programのアカウント管理者に、アプリリリースを行うための権限を付与してもらいましょう。
チームメンバの追加の際に、管理者側で設定できるとは思いますが、別枠で説明します。

- 役割は「App Manager」（※1）
- 「Certificates, Identifiers & Profiles（証明書、ID、プロファイル）」へのアクセス権が必要（※2）

※1 App Manager以上であれば問題ありませんが、その上がAdminなので開発委託者としては強すぎ。Developerだと、配布用のビルドができないので権限不足。そのためApp Managerが妥当だと思います。

参考：[Apple Developer Programにおける役割-サポート-Apple Developer](https://developer.apple.com/jp/support/roles/)

※2 「Certificates, Identifiers & Profiles（証明書、ID、プロファイル）」へのアクセス権の付与は、役割の設定だけでは実施されません。App Store Connectのメンバー管理ページでチェックボックスがあるそうです（以下サイト参照）。顧客も気付きにくいようなので、依頼時に補足したほうがよいです。

参考：[Certificates, Identifiers & Profiles にアクセスできない、表示されない｜Apple Developer Program (member center)](https://www.hnut.co.jp/entry/2019/02/23/122156)

## 4.アカウント情報の確認
権限が付与されたApple IDで[「Apple Developer」](https://developer.apple.com)にログインして、「Account」ページにて権限を確認します。

- 「Membership」ページで、Team Nameが顧客のチーム名か確認してください。
- メニューに「Certificates, IDs & Profiles」の選択肢が表示されており、メニューを選択して「Certificates, IDs & Profiles」ページにアクセスできることを確認してください。

<img width="265" alt="スクリーンショット 2020-03-23 11.22.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427235/ddc392f3-754d-d25b-3fff-6e2db324d608.png">

補足）Xcodeで確認することも可能です。
Xcodeの「Xcode」>「Preferences」>「Account」を表示すると、TeamのところにTeam Nameが表示されるようになります。

<img width="798" alt="スクリーンショット 2020-03-23 11.41.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427235/ac0f6a9b-c590-acee-8d6c-c2247a4e49cb.png">

ここまでで、顧客とのやりとりが必要な作業は終了です。
まとめてみると、大した作業はないのですが、3の権限付与でちょっと手間取りました。わかっていれば難しくないと思いますので、自信を持って顧客とやりとりして、顧客を安心させてあげましょう笑。

以降の作業は、こちらの記事[iOSアプリ委託開発でのAdHocリリース手順まとめ（配布編）](https://qiita.com/j-kimu/items/384dff238b62045e9ea9)にまとめています。