[iOS 10] Xcode 8 の新しい Signing 機能について

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

What's New in Xcode App Signing

Xcode 8 から利用できる署名まわりに関する新機能。
WWDC 2016 で発表されたこの新機能の概要についてご紹介します。

  • Xcode 8 automatically manages signing
  • Multiple development certificates
  • Dedicated customized signing mode

Xcode 8 automatically manages signing

なにができるの?

なにかができるようになった、と言うよりは今まで行っていた面倒な作業を行わなくてよくなった、というものです。
これらの作業は今後、Xcode が 自動で 行ってくれます。

Xcode が自動で行ってくれる作業

  • 署名付き証明書の作成
  • App ID の作成と更新
  • プロビジョニングプロファイルの作成と更新

これらは Automatically manage signing の設定を ON にするだけで、Xcode が適切なタイミングで実行してくれます。(Capabilities を追加した時など)

1

複雑な上に時間がかかる作業が自動化されることで、エンジニアは開発に集中することができるようになるでしょう。

Apple はこの機能を使用することを 推奨 しているため、過去のプロジェクトも早めに移行しましょう。

Multiple development certificates

こちらもなかなか嬉しい機能です。
複数の Mac で開発するときに鍵付き証明書のエクスポートやインポートが不要となりました。
これで以下のダイアログを見ることはもうなくなるそうです。

2

Reset ボタンを押して「誰だやったの!?」や「ビルドできなくなったー」なんて言われることがなくなるのかな?

Dedicated customized signing mode

Automatically manage signing の設定を OFF にすることで、Build Configuration ごとにプロビジョニングプロファイルを設定できるようになります。

3

  • 手動で作成したプロファイルのみ選択可能
  • どのタイプのプロファイルでも OK
  • 新たなビルド設定 PROVISIONING_PROFILE_SPECIFIER
  • プロファイルは名前で参照する

これらを設定すると、たびたびエラーが発生します。
プロビジョニングプロファイルに Capabilities が含まれていなかったり、証明書が含まれていなかったりなど。

これまではこれらのエラーが発生しても Fix Issue というボタンが付いたダイアログが表示されるだけで以下のことがわかりませんでした。

  • 何が問題だった?
  • Fix Issue で何をした?
  • Fix Issue はなぜそれを行った?
  • なぜ Fix Issue ボタンを押さなければならないの?

しかし、今後はこれらの詳細が確認できるようになったため、問題解決までにかかる時間が短くなることでしょう。

4

Best Practices

Apple はベストプラクティスとして以下のことを提案しています。

開発

  • Automatic を使う
  • team にすべての開発者を追加する
  • Capabilities タブを利用する

Signing の自動化は開発が容易になるように設計されており、それは個人開発者や大規模なチームにも素晴らしく作用します。
よって team にはアプリに関わる全ての開発者を追加すべきです。

また Entitlements を管理するために Capabilities タブを利用しましょう。
そうすれば Developer のウェブサイトで設定作業を行う必要もなくなります。

手動

  • CODE_SIGN_IDENTITY を設定してはいけない
  • 新しい General タブの UI を利用する
  • Capabilities タブを利用する
  • Automatic に移行する

特定の署名付き証明書はアカウントにリンクしているため、それを設定してしまうと誰かがそのプロジェクトを pull した時にビルドできなくなってしまいます。
よってそれはデフォルト値のままにしておきましょう。

従来の Build Settings タブではなく、新しい General タブを利用しましょう。
こちらのほうがプロファイルについての情報をより多く確認することができます。

また Entitlements を管理するために Capabilities タブを利用しましょう。
こちらは先ほどと同じ理由です。

そして可能であれば自動化できるかを試してみましょう。

最後に

Xcode 8 になってこれまで理解することが難しかった部分が自動化され、とても開発がしやすくなりそうですね。
まだまだ触ってみないとわからない部分が多くありますが、Automatically manage signing の設定は Apple が推奨しているため、徐々に慣れていきましょう。

リンク

ミレニアム・ファルコン製作日記 #31

31 号 表紙

mfd_31_1

パーツ

mfd_31_2

mfd_31_3

mfd_31_4

成果

mfd_31_5

mfd_31_6

mfd_31_7

今回の作業は以下の 2 つでした。

  • 船体下部フレームを組み立てる
  • 組立ジグを拡張する

前回と似たような内容です。
今回で組立ジグが完成し、完全な円となりました。
今後、船体を支えるために使います。

スター・ウォーズ 反乱者たち

みなさん観ましたか?
シーズン 2 の最終話。
個人的には最高でした!
これまで クローン・ウォーズ を見てきたかいがありました。

伏線張りまくりの内容は シーズン 3 に続きます。
エズラが成長してる〜
シーズン 2 から数年後という感じなので、もしかしたら ローグ・ワン にも絡んでくるかもしれないですね。
海外では今年の秋に放送されるそうなので、日本での放送は来年あたりでしょうか?
とても楽しみです。

それではまた次回。

May the Force be with you!