I have control. どうも、あのとってぃです。
今回はiOS開発で必ず通る実機デバッグのお話をさせていただこうと思います。 今さら!?感はございますが、うちも人が増えてくるにつれチーム管理の業務も増えております。 そこでiOS開発に関わる全員に知っておいてもらいたい最低限のことをまとめてみました。 また、どのようにチーム管理していくかも少し触れていきます。
今回は複数人での開発を想定した話なので、すでにApple Developer Programに加入している人が存在しており、そこに参加するまでのプロセスになります。
Step.1 全然知らない人向け
そもそも実機デバッグしたことない!って人から。
XcodeからデバッグビルドをしてiPhoneなどに転送する際、こちらの項目を埋める必要があります。
Code Signing IdentityとProvisioning Profileをいい感じに選択してあげると実機で動く、つまりゴールです。 この2つを入手するためには、Apple Developer Member Center(通称:デブセン)で手続きが必要となるわけです。
Code Signing Identityとは、デブセンで発行した証明書になります。
Mac上ではキーチェーンアクセスで管理されております。
Provisioning Profileとは、アプリケーションの情報が詰まったプロファイラです。 (もう少し理解を深めるのは、のちの説明をしてからにします。) Provisioning Profileもデブセンで発行することができます。
Step.2 Apple Developer Member Center
Step.1でゴールはわかっていただけたと思います。 デブセンでいろいろ発行すればいいんしょ!
まあ待ってください。
デブセンは奥深いんです。
もう少しデブセンのことを説明させてください!!
ここでは、大きく4つの項目についてざっくり説明します。
Certificates
Code Signing Identityで使用する証明書を発行、管理することができます。 この証明書を持っているMacがデバッグビルドの権利を持つマシンということになります。
Identifiers
アプリのIDを発行、管理することができます。 このIDと、Xcode上のBundleIDが一致するアプリがデバッグビルドの権利を持つマシン(ry
Devices
実機デバッグを行う端末を登録することができます。 ここに登録されている端末がデバッグビルドの権(ry
Provisioning Profiles
上記3つの情報を束ねるもの。
このような構成になっております。
つまりProvisioning Profilesとは、認証されたマシン・アプリ・端末をひとまとめにしたファイルだったのです。
Step.3 実際に発行してみよう!!!
もう本当に優れた情報がたくさんありますので、割愛させていただきます。
Step.4 チーム管理について
デブセンにはチーム開発の機能が備わっています。 その基本的な部分をご紹介します。
AppleIDで招待
自分のチームに開発者を招待することで、証明書の発行やプロビジョニングのDLなどができるようになります。
権限の付与
Agent、Admin、Memberの3つがあり、行動に制限をかけることができます。 AgentはProgram契約者なので全ての権限を持っています。 Memberは一番制限された権限で、基本的には証明書のDLしかできません。
開発者の離脱
なんらかの事象で開発者が抜けることもあるでしょう。 対象の証明書の削除や、チームから登録者を除外することができるので、適宜管理することができます。
新たな開発者の迎え入れ
開発者を増やす場合のステップとしては以下の流れがオーソドックスでしょう。
- 管理者は開発者をMemberとして招待
- 開発者はCertificateの登録、DL
- 管理者がProvisioningにCertificateを追加
- 開発者はProvisioningをDL
端末登録上限の呪い
開発端末は100台※までしか登録できないし、削除も1年の更新ごとにしかできません。 多くの大規模な企業はこれに悩まされたことがあるでしょう。 むやみやたらに端末登録せず、計画的に行いましょう。
※AppleDeveloperProgramの統合が2015年6月頃に行われた際に、iOSデバイスもそれぞれ(iPhone,iPod touch,iPad)100台に緩和されました。
まとめ
今回の内容は基礎の基礎です。 証明書の管理もXcode6から現行の7にかけて自動でできるようになってきました。 自動は自動で罠がたくさんあり、思うようにデバッグできないことも発生します。 どこが悪いのかなにが足りないのか過剰なのかに対応するために、まずはこのあたりをおさえておくといいかと。
次はDistributionかAdHocか自動化か、まだまだネタは尽きません。