Apple Developer Centerの認定はわかりやすい

主なものについて簡単に



太古の昔から、Apple Developer Centerは、開発、テスト、公開の各主要段階でアプリケーションを認証するために、かなり洗練されたシステムを使用してきました。



多くの場合、最初にこのシステムに没頭するとき、初心者(だけでなく)開発者はApple Developer Centerの機能を理解する上で深刻な問題を抱えています(簡単にするために「センター」と呼びます)。 その結果、私の専門的な活動の過程で、新しい職場のDevCenterでプロファイルと証明書の膨大なダンプを頻繁に観察する必要があり、その結果、「瓦の整理」を開始する必要がありました。



同時に、ネットワークはこのトピックに関する材料のそれほど大きな選択ではありません。 もちろん、 Apple公式ドキュメントでは、すべてが適切に構成され、非常に詳細に説明されていますが、多くの場合、そのような量の資料を勉強するのに十分な時間がありません。 原則として、開発、テストの段階、およびApp Storeに公開するときにアプリケーションが正しく機能するために何をどの順序で 正確に行う必要があるをすばやく理解したいと思います。 ロシアのコミュニティでは、このような資料が1か所に集められており、便利なアクセスがまったくないので、この記事を書くことにしました。 関心のあるすべての人のために-猫へようこそ。



何を分解しますか?



Apple Developer Centerでアプリケーションを作成するプロセスからApp Storeで公開するプロセスまで、プロセスを順を追って説明します。 開発、テスト、公開などの基本的な事項についてのみ説明し、APN(プッシュ通知)についても説明します。



2016年3月31日現在のdevcenterの原理についてさらに説明することに注意してください。したがって、後でこの記事を読むと、すべてが変更されている可能性があります。



何が必要ですか?



実際、仕事には次のものが必要です。





セクションの向き



devcenterでは、アプリケーションを完全に機能させるために、2つのポイントのみが必要です。





用語



Appleセンターの機能の根底にある概念を詳しく見てみましょう。



証明書



このセクションでは、Apple IDアカウントが持っている証明書を管理するためのアクセスを提供します。 プッシュ通知などのAppleエコシステムのすべての重要なコンポーネントを含む、開発、テスト、公開のいずれの段階でも、最新の(有効な、アクティブな)証明書が必要です。 簡単に言えば、アプリケーションはApple Developer Centerの許可なしにくしゃみさえすることはできません。 サブセクションについてもう少し:





次に、証明書の種類を見てみましょう。



タイプ証明書「開発」



まず、開発証明書は常に特定のマシンに結び付けられていることを知っておく必要があります。 したがって、Macでデバッグするには、この証明書にアクセスする必要があります。 ここにオプションがあります。 たとえば、iOSプログラマーとしての仕事を得て、タスクにデバイスでのデバッグが含まれている場合(原則としてあります)、解決する方法は2つあります(どちらを選択するかは、あなたと会社の労働条件によって異なります) :





プロセスの手順は、証明書の作成の開始時にAppleセンターで表示されます。すべてが詳細に説明されており、明確で、段階的に、問題はないはずです。 つまり、証明書の種類( iOSアプリ開発 、アプリケーションのデバッグ用、またはAPNs Sandbox 、プッシュのデバッグ用)を選択した後、開発証明書が生成される証明書署名ID要求ファイルを作成する必要があります。 アプリケーションをデバッグし、サンドボックスでプッシュ通知をデバッグする場合、これらの証明書の両方が必要になります。 将来的には、同様のプロセスが食品証明書の作成に使用されることに言及します。



未使用の証明書が存在するということは、Apple Keychainをダブルクリックしてダウンロードしてインストールすることにより、このデバイスをワイヤでMacに接続することで、デバイスのデバッグモードでXcodeを介してアプリケーションを直接起動できることを意味します。 許可された特定のAppleデバイスのリストは、開発プロファイルを生成するときに指定する必要がありますが、それについては後で詳しく説明します。 また、devプロファイルを使用してアセンブリをアセンブルおよびエクスポートすることもできますが、この場合、アプリケーションが本番機能にアクセスできないことを考慮する価値があります(たとえば、APNはサンドボックスモードのみになります)。



タイプ「生産」の証明書



まず、念のため、iOSアプリケーションのアセンブリは* .ipaファイルと呼ばれることを説明します。これは、XcodeのProject-Archiveコマンドを介してApple認定ルールに準拠してリリースされたアーカイブです。



次に認証について。 製品証明書は、さまざまなアプリケーションサブシステムの動作を「戦闘」状態、つまりApp Store、およびTestFlightを通じてアプリケーションの内部および外部テストが実行されるデバイスで提供します。 ここでは、開発認定と同様に、 App Store&Ad Hoc Productionタイプと、プッシュ通知を送信するためにWebサーバーで使用されるAPNs Productionタイプがあります。 プッシュをサポートするアプリケーションをリリースする予定の場合は、App StoreとAd Hoc(作成してアプリケーションをiTunes Connectに送信する基準)とAPNs Production(サーバーに渡す)の両方の証明書が必要になります。プッシュを送信する権利を取得するために使用します)。 既に述べたサブシステムに加えて、ウォレットやApple Watchなどへのアクセスを提供する他のいくつかのサブシステムがありますが、それらのレビューはこの記事の範囲外です。



よくある質問は、App StoreとAd Hocの違いです。 以前は、異なる証明書で表されていましたが、Appleがそれらを単一の全体に結合したこともあります。 これらの品種についてもう少し:





別の一般的な質問:開発証明書+開発プロファイルのペアで組み立てられたアセンブリと、配布証明書+アドホックプロファイルの束を通して作成されたアセンブリの違いは何ですか? 結局のところ、あちこちで、インストールが許可されているデバイスのリストを指定する必要があります。それから、iTunes経由でインストールできます。 違いは何ですか? 実際、違いは、devアセンブリが「デバッグモード」で起動されることです。つまり、APNは「サンドボックス」モードでのみ利用可能になります。 実稼働アセンブリには「戦闘」権限があり、「実際の」APN、iCloudなどのすべてのAppleサブシステムにアクセスできます。



中間証明書



しばらく前に、Appleはdevcenterとその認証システムのロジックに変更を加えました。その後、アクティブなdevおよび製品の証明書と関連プロファイルが存在するにもかかわらず、ほとんどのコンピューターでアプリケーションを構築できなくなりました。 これは、Appleが「Worldwide Developer Relations Certificate Authority」と呼ばれる特別な証明書をキーチェーンのMacにインストールするという追加の要件を追加したためです。 Xcodeの新しいバージョンで自動的にインストールされますが、すでにXcodeをインストールしていた人は、Apple Dev CenterのIntermediate Certificatesセクションから直接リンクを介してダウンロードすることにより、この証明書を手動でインストールする必要がありました。その後、アセンブリの問題はなくなりました。 この証明書には、これ以上のセマンティックロードはありません。



識別子



このセクションでは、ID管理を提供します。 最小限のアプリケーションの場合、同じ名前のサブセクションで管理できるアプリIDが必要になります。



文字通りの翻訳では、「アプリID」は「アプリケーション識別子」を意味し、その本質を完全に反映しています。 Appleデバイスでデバッグしたり、TestFlightでテストしたり、App Storeに公開したりするアプリケーションには、独自の一意の名前が必要です。これにより、他の何千ものアプリケーション間で一意に識別できます。 新しいアプリIDを追加する場合、いくつかの要素を入力するよう求められます。





アプリIDを作成したら、それを使用して任意のタイプのプロファイルを生成できます。これについては後で詳しく説明します。



装置



このセクションには、Apple Developer Programの一部として使用できるすべてのAppleデバイスの管理が含まれています。 1年間にアカウントごとに最大100の同じタイプ(iPhone、iPadなど)の登録デバイスという制限があり、通常はこれで十分です。 デバイスでデバッグするか、Ad Hocアセンブリをリリースする必要がある場合は、必要なデバイスのUDIDをここに追加して、プロファイルを生成するときに使用します。



プロファイル(プロビジョニングプロファイル)



文字通り、このセクションのタイトルは「Collat​​eral Profiles」と訳されています。 もう少し詳しく説明すると、「プロファイル」の概念を「アプリケーションの特定のアセンブリの一部の機能へのアクセスを提供する特別なファイル」として説明します。 devcenterのこのセクションでは、プロファイルを管理し、さまざまな目的でアプリケーションのビルドをリリースする機会、つまり「プロファイル」を提供できます。 実際、プロファイルは2つの(場合によっては3つの)コンポーネントを組み合わせた結果です。





出口では、特定の目標を持つアセンブリのリリースのプロファイルを取得するだけです。 さまざまなプロファイルを見てみましょう。



開発プロファイル



これは開発用のプロファイルです。つまり、その主な目的は、デバイスをMacにワイヤで直接接続し、Xcodeを介して特定のデバイスでアプリケーションをデバッグすることです。 開発プロファイルは、2つのタイプで表されます。





分布プロファイル



これらのプロファイルは、さまざまな目的でアプリケーションのビルドをリリースするために使用されます。 生産プロファイルは、次の4つのタイプで表されます。





iTunes Connectの概要



このサービスは、TestFlightの内部および外部テストを管理し、アプリケーションをApp Storeにアップロードする機能を提供します。 このプロセスの検討はこの記事の範囲外です。このサービスが正しく機能するには、 Distribution-App Storeタイププロファイル(iOSまたはtvOS用)に基づいて作成されたアセンブリが必要であるという事実のみに言及します。 他のタイプのプロファイルはここではサポートされていません。



要約する



実際、アクティブなApple Developer ProgramでDevCenterにアクセスする場合、アクションのアルゴリズムは次のようになります。



  1. Xcodeを介してデバイス上のデバイスを直接デバッグするマシンを決定します。 それらの中でメインマシンを識別します(開発者のMacである可能性があり、そこから最も頻繁にデバッグする予定です)。 メインMac用の開発グループ証明書を生成し、ダウンロードしてインストールします。 必要に応じて、これらの証明書に関する情報を* .p12 / *。Pfxファイルにエクスポートします。このファイルは、アプリケーションのデバッグも計画されている他のターゲットマシンに送信できます。
  2. App Storeでテストおよび/または公開するためにアセンブリを組み立てる予定のマシンを確認します。 そのための配布グループ証明書を生成します。 複数のマシンのサポートが必要な場合は、前の段落のエクスポートで手順を繰り返します。
  3. App IDセクションで目的のアプリケーション識別子の可用性を確認し、そこに示されているバンドルとXcodeのプロジェクトのBundle Identifierフィールドの値との対応を確認します。不一致がある場合は、devcenterまたはXcodeで削除します(正確に修正される場所は特定の状況によって異なります)。
  4. すべての証明書を削除(取り消し/削除)してから、期限切れ(期限切れの証明書)または無効(無効なプロファイル)とマークされたプロファイルを削除します。 また、証明書とは異なり、プロファイルを編集できることにも注意してください。 つまり、古いプロファイルを削除するのではなく、新しい証明書を生成することにより、新しい証明書を署名として示すことで簡単に編集できます。
  5. プロファイルがない場合、または十分なプロファイルがない場合は、必要なプロファイルを生成します。
  6. コンピューターにマシンに必要な証明書とプロファイルをダウンロードしてインストールします。 ファイルをダブルクリックすると、インストールが完了します。 証明書はApple Keychain、Xcodeのプロファイルにインストールされます。
  7. ビルド設定-コード署名ID-開発/配布セクションのXcodeプロジェクト設定で必要な証明書を指定し、必要なプロビジョニングプロファイルも指定します。


これで、devcenterの準備とクリーニングが完了しました。 その後、必要に応じて次の項目のいずれかを実行できます。



この詳細な説明が、Appleアプリケーション認証システムの機能の詳細を理解し、Apple Developer Centerのクリーンアップに役立つことを願っています。



All Articles