ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
クラウド署名を使ったXcodeによるAppの配布
AppをApp Store Connectに直接配信する方法、Xcodeでサポートされているすべての配信方法を紹介します。また、Appの配布を自動化する方法や、クラウド署名、Appレコードの作成、ビルド番号の管理など、配信ワークフローの改善点についても紹介します。
リソース
関連ビデオ
WWDC22
Tech Talks
WWDC21
WWDC19
-
ダウンロード
♪ ♪ こんにちはBalrajです Xcodeチームのエンジニアです 本日は Xcode 13でのAppの配信について お話します Appの配信方法はいろいろありますが 本日はApp Store Connectに Appをアップロードする方法 App Store Connect以外の配信方法 配信を自動化する方法をご紹介します さらに Xcode 13で配信ワークフローに 追加された新機能についてもお話します このセッションがAppの配信の 初心者にとっても経験者にとっても お役に立てば幸いです 最近 私はよくパンや焼き菓子を作ります そこで Bakerという Appを作ろうと考えました Bakerは様々なパンや焼き菓子を 作るために役立つAppです 最近 Baker iOS Appの 最初のビルドが完成し テストを十分に行ったので ベータテスターに配信して フィードバックをもらいたいと思っています ベータテストのためには TestFlightという ベータビルドを配信してフィードバックをもらう サービスを利用する必要があります Bakerのビルドを TestFlightで使うには まずApp Store Connectへの アップロードが必要です
App Store Connectにより TestFlight上でBakerの ビルドの管理や開発チーム向けの 設定を行うことができます App Store Connectでは App Store向けの Bakerのビルドも管理できます そのため Bakerを TestFlightで利用する場合も App Storeで利用する場合も まずはApp Store Connectに ビルドをアップロードする必要があります ベータビルドのアップロードは Xcodeで行います そのため配信プロセスはAppの開発を 行っている場所から始まります Xcode 13ではいくつか 素晴らしい変更が加わり Bakerのアップロードの際に App Store Connectや ローカルマシンでの設定が不要になりました
1つめの変更はAppのレコードを アップロード前にXcodeで直接作成できること 2つ目は Xcodeが配信プロセスの間に Appのビルド番号を管理してくれること 3つ目はクラウド署名により証明書と秘密鍵が クラウドに保存されるので自動署名を利用すると ローカルでの手動の設定が不要になることです では実際にXcodeから App Store Connectに Bakerをアップロードして 仕組みを確認しましょう Bakerのプロジェクトを開き準備を整えました まず必要なのは配信用に処理できる Bakerのビルドです この種類のビルドを実行するには ツールバーから実行先として を選び どの対応iOSデバイスでも 実行できるようにします
そしてメニューバー上のを選び をクリックします ArchiveはAppの開発者署名付きの リリースビルドのことでリリース時に使用される Appとチームのメタデータが入っています Archiveの操作が完了すると Xcodeオーガナイザーが自動で表示されます そして構築されたArchiveが 自動的に選択されます これを配信に使用します 右側のインスペクターでもArchiveの情報を 確認できバージョン バンドルID チーム名のほか配信用の青いボタンも 右上に表示されます Archiveの保存のほかオーガナイザーでは あらゆるAppの様々な分析情報も確認できます 例えばクラッシュエネルギー インサイト 指標などです Bakerはベータテスト中なのでこのAppの 稼働の状況についてもここで確認します 配信を始めるには 現在 選択中のArchiveを使い ボタンを クリックします
配信の最初のステップはBakerの配信方法を 選択することです App Store Connectが 既定で選択されています そこにアップロードしたいので このままにします この他にもこのウインドウでは 様々な配信方法を選択できます 例えばAd Hocや Enterpriseがあります これらについてはまた後ほどお話します App Store Connectへの アップロードを進めるため ウインドウの右下にあるを クリックします するとアップロードか エクスポートを選択する画面に移ります アップロードを選ぶと Archiveが取り込まれて Appのアップロード形式 IPAの生成と署名が行われ App Store Connectに送られます エクスポートの場合もIPAが構築され コンテンツへの署名が同様に行われます 唯一異なるのは IPAが App Store Connectに アップロードされずパソコン上の指定の ディレクトリに移動される点です このIPAは後ほど Transporterを用いて App Storeに送信されます BakerをApp Store Connectに アップロードしたいので アップロードを選択したまま をクリックします するとApp Store Connect の状態の確認と 様々な配信の設定が行われます またXcode 13では App Store Connectでの Appレコードの作成を促す プロンプトが表示されます これはビルドのアップロードの前に必要となります ここではいくつかのプロパティの値 例えばApp名 バンドルID 第一言語などが既定で表示されます BakerのArchiveとシステム 設定を基にした値です 既定の値で問題ないので をクリックします これで必要なAppレコードが作成されました Appレコードではアップロード済の Bakerビルドをすべて確認できます また TestFlightやApp内課金 価格情報などの設定も行えます BakerのAppレコードが App Store Connect内に 作成されてAppのリスト内に表示されています このAppレコードでBakerのすべての ビルドが管理されるので 今後のアップロードの際にはAppレコードを 新たに作成する必要がありません BakerのAppレコードの作成と App Store Connectの 設定の検証が完了すると いくつかのオプションが提示されるので Archiveの内容と希望する Appの配信方法に基づき選択します 私はBitcodeに対応させたいですし シンボルも含めて詳細なクラッシュレポートを 得られるようにしたい また Bakerのビルド番号も すべてのフレームワークで 一貫させたいので 既定の選択のままで をクリックします Bakerへの署名方法を 選択する画面になりました 署名の目的は 信頼できる開発者が制作したことを認証し 安全に実行できるAppであると示すことです 自動での署名と手動での署名の 2つから選択します 自動を選ぶとXcodeが署名を行ってくれます 手動にすると署名プロセスを すべて自分で管理できます 私は署名をXcodeに任せたいので 自動にチェックを入れたまま をクリックします するとBakerのArchiveが IPAに変換され 配信用の署名が施されます 配信ワークフローの自動署名には いくつかの変更が加わり署名の際に ローカルマシンでの設定が不要になりました 署名プロセスでは信頼できる開発者であると 認証するために 証明書と秘密鍵が必要です ローカルで署名する場合は配信証明書と 秘密鍵がマシンに必ずインストールされている 必要があり配信ワークフローに 入る前に手動での設定が必要なことがよくあります Xcode 13では自動署名を使うと 証明書の設定は一切必要ありません 証明書と秘密鍵はクラウドに安全に保存され そこで署名が行われるようになりました つまり自動署名を使うと 証明書の設定を一切行う必要がないのです この新しい署名方式はXcode内の あらゆる配信方法でサポートされています 例えばApp Storeのアップロード Developer ID Enterprise配信などです クラウド署名は完全に水面下で行われます 署名用アセットを管理しAppに署名します この仕組みについて詳しく見てみましょう Xcodeは開発者署名付きの Baker Appを Archiveの中に持っていき 部分署名を生成します この部分署名にはApp内のコンテンツの ハッシュが含まれています そしてハッシュのコピーが 私たちのサーバーに送られ そこで秘密鍵と証明書を使用して クラウド上でAppへの署名が行われます その後 私たちは署名の残りの部分を返し それを部分署名に挿入して 署名プロセスを完了させます 自動のクラウド署名を使用することで App Store Connectに アップロードできる 完全な配信用の署名が付いた Baker Appができました
App Store Connectで 管理者やアカウント所有者の ロールを持つ人は誰でも App Store Connectでの 配信でクラウド署名が可能になりました 開発者ロールを持つ人にクラウド署名を使用して Bakerをアップロードしてもらいたい場合は App Store Connect上で 権限を付与できます に チェックを入れてください これでXcodeでのBaker Appの パッケージングと クラウド署名が完了し概要ページが表示されました App Store Connectへの アップロード前の確認です 使用した証明書の種類 バージョン番号Bakerの署名に 使用された権利などの情報が表示されます この情報で問題ないので をクリックします これでXcodeはBakerの最初のビルドを App Store Connectに アップロードします App Store Connect上で見ると Bakerの最初のビルドがXcodeが作成した Appレコード内に表示されています ここからTestFlight向けに Bakerを設定しベータテストを開始できます App Store Connectでの TestFlightや App Store向けの Appの設定方法については ガイドがありますのでご確認ください TestFlightでBakerの ベータテストを行った後 私は多くのバグやフィードバックに対応し 今度は必要な更新を行った 別のビルドをアップロードを アップロードしたいと考えています プロセスは先ほどと ほぼ同じです 必要な変更を含んだAppをアーカイブして Xcodeオーガナイザーにより配信します ただし2点違いがあります まず Appレコードの作成は不要です 次に 必ず異なるビルド番号を 使用する必要があります App Store Connectでは 各ビルドが保存され ビルド番号により区別がされているためです アーカイブ前にプロジェクトファイル内の ビルド番号を変更すれば完了です ただし ビルド番号を自分で管理したくない場合は 配信ワークフローで管理してくれます
Xcode 13ではビルド番号が App Store Connectで 使用済み または 数字が増えていない場合有効な番号に 変更するよう促してくれます の オプションでXcodeが選んだ ビルド番号を確認できます
私は配信ワークフローに ビルド番号管理を任せたので 1回目のアップロードとまったく同じ プロセスを踏み App Store Connectに 第二のビルドが入りました ベータビルドをリリースして フィードバックに対応する このサイクルはApp Storeでのリリースに 必要な品質を満たすビルドができるまで 継続します
BakerをApp Storeに置くには App Store Connect内の TestFlightビルドを昇格させるか オーガナイザーの別のビルドを同じ方法で App Store Connectに アップロードします BakerをApp Storeに 置いた後は引き続き 新機能やバグ修正 機能強化の追加を行えます 次にTestFlightまたは App Storeに アップロードする際も同じプロセスを繰り返します Xcode 13の 配信ワークフローに追加された クラウド署名や Appレコード作成ビルド番号管理などの 機能によりAppの配信を App Store Connectや マシンの事前設定なしで行えるようになりました そのためAppの配信がこれまで以上に 効率よく行えます Xcodeでは様々な 配信方法を利用できます ここで他の配信方法も 見てみましょうまずはMac Appです Bakerを含めほとんどのiOS Appは Apple Silicon Macsで 既定で使用できます この設定はBakerのAppレコードの セクションで行えます 私はIntel Macsでも使用 できるようにして Mac Catalystバージョンや Mac向けのネイティブバージョンを作成し 2つの方法でAppを 配信できるようにしたいと思います Mac Baker Appを Mac App Storeに 配信するにはクラウド署名を行い iOSと同じプロセスを踏みます iOS Appと同じバンドルIDを 使用する場合は Mac AppでもiOSと同じ Appレコードが使用されます またそうすることでApp内課金など 特定の機能も 2つのプラットフォームで共有されます またMac AppをTestFlightで 使用することも可能です これはMacOS Montereyに 追加された新機能です そのためAppleの全プラットフォームで TestFlightを使ってBakerの ベータテストを行えます
Mac App Store以外でも Bakerをダウンロード できるようにするには Developer IDを使って Appを配信することもできます Developer IDによる配信では Developer ID証明書により Bakerにクラウド署名が施された後 ノータリゼーションというプロセスにより マルウェアでないことが確認されます 署名とノータリゼーションが完了すると macOSはMacで実行できる Appとして信頼します
Developer IDを使用した配信と ノータリゼーションの詳細は 「All about notarization」 のセッションをご覧ください Developer IDと Mac App Storeの2つは macOSの主な配信方法です どちらもAppを世の中に 出すための優れた方法です Macで配信する方法を ご紹介したので次に iOSでAppを 配信する方法もいくつかご紹介します 私はチームメイトに直接配信用の署名付きの Bakerのビルドを送りたい時があります これはバグ修正のテスト 実験的な新機能のテスト その他の様々な理由のためです この場合Ad Hoc配信を使います Ad Hoc配信を使うと 1つのデバイスタイプにつき 登録された最大100台で 実行可能な署名を施せます Xcodeを使うとAd Hoc配信の オプションを選択し Appをエクスポートして登録デバイスを持つ チームメイトにBakerを送信できます 最後に 私のチームは Campus Explorerという Appを社内に配信したいと思っています Xcodeにはそのための方法が2種類あります カスタムAppとEnterprise配信です カスタムAppを使用するには App Store Connectに 配信して そこでカスタムAppを設定します 次に Enterpriseプログラムで非公開に 配信したい場合はオーガナイザーで Enterprise配信を選択します カスタムAppに関する詳細については 「Custom app distribution with Apple Business Manager」のセッションをご覧ください
ここまでBakerの様々な ビルドを配信する方法を いくつか紹介しました 今後配信を行う度に同じオプションや方法を 何度も選択することになります そのため配信プロセスを自動化したいと思います 配信の自動化は継続的インテグレーション サービスを使う際に特に有用です Appの構築とテストと配信を一つの継続的な ワークフローで行えるからです 新しいXcode Cloud CI サービスがこれに最適です Appの構築とテストが完了すると Xcode Cloudは App Store Connectへの Appの自動配信を支援します Xcode Cloudでの設定とAppの配信の 方法については「Explore Xcode Cloud Workflows」の セッションをご覧ください
別のCIサービスを使用して 配信を自動化したり マシンのローカルで自動化したい場合は Xcodebuildというコマンド ラインツールを使います xcodebuild exportArchive というコマンドが 配信の自動化に使用され ArchiveとExportOptions のplistと認証情報が取得されます Bakerを最初にアップロードしたように Xcode内でArchiveを作成できます またはxcodebuildのアーカイブ コマンドで構築できます 構築したArchiveを参照するには アーカイブパス因数を使いパスを 構築したArchiveに渡します
次はExportOptionsplistです これはAppの配信のレシピのようなもので Xcodeの配信ワークフロー内で 手動で選択したすべての オプションが示されています IPAをエクスポートしたら 選択した全オプションと共に plistがディレクトリに保存されます App Store Connectに Bakerをアップロードすると ExportOptions plist が作成され アップロードの選択Bitcodeの有効化 自動署名などオプションが記録されます このplistによりXcodeで選択したのと 同じオプションで配信が行われます ExportOptions plistで 利用できる オプションについては xcodebuild-helpをコマンド ラインで実行してください
ExportOptions plistを 指定するには ExportOptions plist因数を plistファイルへの パスと共に渡す必要があります 最後に クラウド署名とApp Storeへの アップロードを成功させるには Xcodebuildは有効な認証情報に アクセスできる必要があります 方法は2つあります 1つ目は Xcodebuildを実行する前に Xcodeにサインインすることです するとマシン上でセッションが一定期間続きます Xcodeにサインインする場合 唯一注意すべきなのは プロビジョニングアップデートを許可し XcodebuildがApple Developerサイトと 通信できる権限を付与することです Xcode 13ではApp Store Connectキーを使うと Xcodebuildに直接サインインできます キーはApp Store Connect から取得して Xcodebuildに渡すことができます この際に必要なものは3つで まず Issuer ID これは authenticationKeyIssuerID を使ってXcodebuildに渡されます 次に Key ID これはauthenticationKeyID を使って渡されます 最後は API Key これは ボタンを使ってダウンロードします ダウンロードされたファイルへのパスは authenticationKeyPathで Xcodebuildに渡せます さらに Developerサイトと 通信できるように プロビジョニングアップデートも許可します これが完了してApp Store Connectキーを取得すると XcodebuildがAppを 配信するために必要な 認証情報が得られます Archiveも ExportOptions plistも 認証情報も取得したので 完全なXcodebuildコマンドを 構築する準備が整いました こちらがBakerの配信を自動化するコマンドの すべての要素です 私はベータテスターにアップデートを週1回 継続して提供したいのでこの配信のコマンドを 使ってCIにそれを行ってもらいます
以上がXcode 13を使用したAppの 配信方法でした TestFlightやApp Store向けの App Store Connectへの配信から Developer IDやAd Hocや Enterpriseなどの 配信方法 そしてXcodebuildや Xcode Cloud CIサービスを 使った配信プロセスの自動化もご紹介しました Xcode Cloudを使用したAppの 配信方法の詳細は 「Explore Xcode Cloud Workflows」セッションを 他の配信方法の詳細は 「App Distribution--From Ad Hoc to Enterprise」 セッションをご覧いただくと 役立つと思います ありがとうございました WWDCを楽しんでください! [アップビートな音楽]
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。