WWDCのWhat's New in Xcode App Signing、まとめてみました。
内容
What's New in Xcode App Signingの内容は以下の通りでした。
- Fundamentals
- 02:30 - 07:30
- どのようにしてXcodeがSigningを行うかを解説
- Signing Certificate per Mac
- 07:30 - 10:00
- developmentのcertificateについて、PCごとにインストールするようになった点を説明
- Signing in Xcode
- 10:00 - 29:00
- Xcode8から、Signingがどう変化し、ワークフローがどう変化するかを解説
- Best Practices
- 29:00 - 終わりまで
Fundamentals
Fundamentalsは、アプリのSigningに必要なCertificates、Provisioning Profile、Entitlementについて早足での解説でした。
まずは、それぞれのファイルの役割について解説し、
その後以下の画像のように、実際のSigningの流れについて解説をしていました。
Signing Certificate per Mac
Signing Certificate per Macは、「開発用p12ファイルを開発マシン間でやり取りする」、という複数台のPCで開発を行う際の問題に対する解決策として、Signing Certificate per Macという仕組みを導入した、という話でした。
Signing Certificate per Macは、Debugビルド用の証明書については個々のMacで別個に作成して使えるようにしよう、というもので要点としては以下の通りです。
- Debugビルドonly
- XcodeとiOS Dev Centerの双方で生成できる
- Xcode8移行から生成可能
- Xcode7以前でも使用可能
Signing in Xcode
Signing in Xcodeでは、Signingに関する問題を解決するためにXcodeのワークフローとUIを変更した、という話でした。
変更点としては、以下の通りです。
- SigningがBuild SettingsからGeneralタブに移動
- Automatic SigningとCustomized Signingという仕組みを導入
- Automatic Signingでは、Capabilitiesに変更を加えた場合などに、自動的にProvisioning Profileが更新される
- Customized Signingは今までのApp Signingと同じ。
- Provisioning Profileのエラーでは、fix issueのみではなく、説明的なエラーメッセージを表示するように
- Automatic SigningでのProvisioning Profileのステータス変更について、Report Navigatorペインで表示されるように。
- Provisioning Profileの更新に伴うProvisioning Profileの選択が不要に
まず、1点目については、以下の画像のようにSigningがGeneralタブに移動しており、TeamやProvisioning Profile、Certificatesの設定が一目でわかるようになりました。
Automatic Signingについてですが、Session動画の16:30-17:30あたりを確認するのが一番わかりやすいかと思います。
(backgroundでXcodeが全て処理するため)
次にfix issueの改善についてですが、Provisioning Profileで何かエラーが発生した場合に以下の画像のように、エラーの発生箇所について詳細に記述されるようになります(Push NotificationとiCloudを修正すれば良いことがわかる)。
Automatic SigningによるProvisioning Profileのステータス変更については、以下の画像のように、Report Navigatorペインで確認することができます。
Provisioning Profileの更新については、PROVISIONING_PROFILE_SPECIFIERという新たにBuild Settingsに追加された名前(Bundle Identifier?セッションではUnique IDと説明)により自動で解決が行われるため、開発者が選択しなおす必要がないそうです。
興味のある方は、22:00-22:30のあたりを確認してみてください。
Best Practices
最後のBest Practicesは、Xcode8からのワークフローに対応して、以下のように開発を進めよう、というものでした。
- 開発時には、Automatic Signingを使おう
- GeneralタブのSigningとCapabilitiesタブで全てを管理しよう
- Customized Signingを使う場合にも、CODE_SIGNING_IDENTITYをデフォルトのままにしておこう(Signing Certificate per Macのため)