主なものについて簡単に
太古の昔から、Apple Developer Centerは、開発、テスト、公開の各主要段階でアプリケーションを認証するために、かなり洗練されたシステムを使用してきました。
多くの場合、最初にこのシステムに没頭するとき、初心者(だけでなく)開発者はApple Developer Centerの機能を理解する上で深刻な問題を抱えています(簡単にするために「センター」と呼びます)。 その結果、私の専門的な活動の過程で、新しい職場のDevCenterでプロファイルと証明書の膨大なダンプを頻繁に観察する必要があり、その結果、「瓦の整理」を開始する必要がありました。
同時に、ネットワークはこのトピックに関する材料のそれほど大きな選択ではありません。 もちろん、
Appleの
公式ドキュメントでは、すべてが適切に構成され、非常に詳細に説明されていますが、多くの場合、そのような量の資料を勉強するのに十分な時間がありません。 原則として、開発、テストの段階、およびApp Storeに公開するときにアプリケーションが正しく機能する
ために何をどの順序で 正確に行う必要がある
かをすばやく理解したいと思います。 ロシアのコミュニティでは、このような資料が1か所に集められており、便利なアクセスがまったくないので、この記事を書くことにしました。 関心のあるすべての人のために-猫へようこそ。
何を分解しますか?
Apple Developer Centerでアプリケーションを作成するプロセスからApp Storeで公開するプロセスまで、プロセスを順を追って説明します。 開発、テスト、公開などの基本的な事項についてのみ説明し、APN(プッシュ通知)についても説明します。
2016年3月31日現在のdevcenterの原理についてさらに説明することに注意してください。したがって、後でこの記事を読むと、すべてが変更されている可能性があります。
何が必要ですか?
実際、仕事には次のものが必要です。
- 動作中のMac、または仮想マシンとMac OSがインストールされたPC。
- 有効なApple ID。 公式のApple Webサイトでいつでも無料で登録できます 。
- Apple ID(または自分のチームにApple IDを追加した会社の1つ)で、いわゆるApple Developer Programを有効にする必要があります。「サブスクリプション」は年に1回支払われ、Apple Developer Centerにアクセスして、 App Store 現時点では、年間のコストは小さく、年間使用あたり約99ドルです。
- そして、もちろん、iOS開発スキル。
セクションの向き
devcenterでは、アプリケーションを完全に機能させるために、2つのポイントのみが必要です。
- 証明書、識別子、およびプロファイル。 このセクションでは、アプリケーションの認定システム全体の管理を提供します。 この記事のこのセクションで作業を分析します。
- iTunes Connect TestFlightを使用した内部および外部テストへのアクセス、およびApp Storeでのアプリケーションの公開の管理を提供します。
用語
Appleセンターの機能の根底にある概念を詳しく見てみましょう。
証明書
このセクションでは、Apple IDアカウントが持っている証明書を管理するためのアクセスを提供します。 プッシュ通知などのAppleエコシステムのすべての重要なコンポーネントを含む、開発、テスト、公開のいずれの段階でも、最新の(有効な、アクティブな)証明書が必要です。 簡単に言えば、アプリケーションはApple Developer Centerの許可なしにくしゃみさえすることはできません。 サブセクションについてもう少し:
- 保留中 リクエストした証明書はAppleによって処理されています。 特に私の場合、バージン(開発)およびprod(生産)証明書の場合、このサブセクションはほとんど空です。
- 開発。 Xcodeを介して特定のデバイス(1つまたは複数)でアプリケーションをデバッグする機能を提供するDev証明書、および「デバッグモード」でのDevアセンブリの作成。 これらについては、以下で詳しく説明します。
- 生産。 TestFlightでのテスト時およびApp Storeでの公開時にアプリケーションが機能することを保証する製品証明書。
次に、証明書の種類を見てみましょう。
タイプ証明書「開発」
まず、開発証明書は常に
特定のマシンに結び付け
られていることを知っておく必要があります。 したがって、Macでデバッグするには、この証明書にアクセスする必要があります。 ここにオプションがあります。 たとえば、iOSプログラマーとしての仕事を得て、タスクにデバイスでのデバッグが含まれている場合(原則としてあります)、解決する方法は2つあります(どちらを選択するかは、あなたと会社の労働条件によって異なります) :
- Mac専用のdev証明書を別途作成し、ダウンロードしてインストールします。 さらに、この証明書に基づいてMacに開発プロファイルを生成してインストールする必要がありますが、それについては後で詳しく説明します。
- または、証明書がインストールされているマシンから* .p12 / *。Pfxファイルをエクスポートします(これはAppleキーチェーンで実行できます)。 このようなファイルは、エクスポート中にパスワードで保護されます。このパスワードを知っていれば、証明書情報を他のMacにインポートできます。 この場合、Macごとに個別の開発証明書と個別の開発プロファイルを作成する必要はありません。 小さな警告:エクスポートされた証明書が発行されるマシンのプロファイルを生成する必要がありますが、インストールのためにプロファイルを発行する前に、このプロファイルにデバイスのUDIDを追加する必要があります。
プロセスの手順は、証明書の作成の開始時に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がそれらを単一の全体に結合したこともあります。 これらの品種についてもう少し:
- App Storeなどのアセンブリのリリース。 内部テストモードと外部テストモードの両方で、TestFlightでアプリケーションをテストする機能を提供します。 App Storeでアプリケーションを公開することも可能にします。
- アドホックのようなアセンブリのリリース。 「アドホック」という用語は、「特別な」、「特定の目的のため」と翻訳できます。 このタイプの認証は、特定のデバイス上でのみXcodeを起動プロセスに参加させることなく、戦闘条件でアプリケーション(APNなどの必要なすべてのサブシステムを含む)を実行する機能を提供します。 つまり、サードパーティのデバイスにアプリケーションに直接アクセスせずに(つまり、ワイヤでMacに接続せずに、この場合は開発証明書を持っていたため)アプリケーションをインストールする場合、アドホックが必要です。アプリをiTunes Connectにアップロードしません。 このような証明書は、特別なアドホックプロファイルを作成するために使用されます。これについては後で説明します。
別の一般的な質問:開発証明書+開発プロファイルのペアで組み立てられたアセンブリと、配布証明書+アドホックプロファイルの束を通して作成されたアセンブリの違いは何ですか? 結局のところ、あちこちで、インストールが許可されているデバイスのリストを指定する必要があります。それから、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の説明。 アプリケーションの名前。 たとえば、アプリケーションの名前がMail Printerである場合、このテキストボックスに入力します。
- アプリIDプレフィックス。 アプリケーションのプレフィックス。これは自動的に発行され、Apple Developer Programが接続されアクティブになっている特定のAppleチームに共通です。
- アプリIDサフィックス。 ここで、 明示的なアプリIDを選択して、アプリケーションのバンドルを指定する必要があります。 これは、通常com.mycompany.myappnameという形式の識別子です 。ここで、 mycompanyは会社またはドメインの名前です。 たとえば、 com.homecompany.MailPrinter 。 Xcodeのアプリケーションの[ターゲット設定]でまったく同じバンドルを設定する必要があることに注意してください([全般設定]セクション、[バンドル識別子]フィールド)。
- App Services。 ここで、アプリケーションで使用する予定のサービスに注意する必要があります。 デフォルトでは、そこにマークされているのはGame CenterとIn-App Purchaseのみで、それらの使用は必須であり、削除できません。 必要に応じて他のサービスを接続します。
アプリIDを作成したら、それを使用して任意のタイプのプロファイルを生成できます。これについては後で詳しく説明します。
装置
このセクションには、Apple Developer Programの一部として使用できるすべてのAppleデバイスの管理が含まれています。 1年間にアカウントごとに最大100の同じタイプ(iPhone、iPadなど)の登録デバイスという制限があり、通常はこれで十分です。 デバイスでデバッグするか、Ad Hocアセンブリをリリースする必要がある場合は、必要なデバイスのUDIDをここに追加して、プロファイルを生成するときに使用します。
プロファイル(プロビジョニングプロファイル)
文字通り、このセクションのタイトルは「Collateral Profiles」と訳されています。 もう少し詳しく説明すると、「プロファイル」の概念を「アプリケーションの特定のアセンブリの一部の機能へのアクセスを提供する特別なファイル」として説明します。 devcenterのこのセクションでは、プロファイルを管理し、さまざまな目的でアプリケーションのビルドをリリースする機会、つまり「プロファイル」を提供できます。 実際、プロファイルは2つの(場合によっては3つの)コンポーネントを組み合わせた結果です。
- 特定のタイプのアクティブな証明書(セクション証明書)。 プロファイルは、証明書を使用して、アプリケーションに特定のアクショングループを実行する権限があることを確認します。
- アプリID(IDセクション)。 プロファイルが発行されている特定のアプリケーションを定義します。
- 場合によっては、登録済みデバイスのリストが必要です(デバイスセクション)。 アセンブリをインストールできるデバイスのリストを定義します。 一部のタイプのプロファイルでのみ使用されます。
出口では、特定の目標を持つアセンブリのリリースのプロファイルを取得するだけです。 さまざまなプロファイルを見てみましょう。
開発プロファイル
これは開発用のプロファイルです。つまり、その主な目的は、デバイスをMacにワイヤで直接接続し、Xcodeを介して特定のデバイスでアプリケーションをデバッグすることです。 開発プロファイルは、2つのタイプで表されます。
- iOSアプリ開発。 [デバイス]セクションから許可されたデバイスのリストが必要です。
iOSアプリケーションのデバッグに使用されます。 - tvOSアプリ開発。 同様に、tvOSアプリケーションにのみ使用されます。
分布プロファイル
これらのプロファイルは、さまざまな目的でアプリケーションのビルドをリリースするために使用されます。 生産プロファイルは、次の4つのタイプで表されます。
- App Store TestFlightでのテスト(内部および外部の両方)、およびApp Storeでのアプリケーションのリリースに使用されます。
- tvOS App Store。 前のものと同様、tvOSのみ。
- アドホック。 [デバイス]セクションから許可されたデバイスのリストが必要です。
一部のデバイスでのみ生産モードで配信できるアセンブリをリリースする場合に使用します。 必要な場合の実際の状況、たとえば、以下。 あなたはアプリケーションを開発しており、その過程で、顧客は彼のAppleデバイスで「アプリケーションを感じてもらう」ように頼みました。 iTunes Connectにアクセスして外部テストを有効にする準備はまだできていませんが、顧客の要求を満たす必要があります。これは、 App StoreとAd Hoc Production Certificateに基づいて生成されたAd Hocプロファイルが役立つ場所です。 重要な点 :私の場合、開発証明書もXcodeにインストールされていない場合、この方法でアセンブリをエクスポートすると問題が発生することがよくありました。 エラーにはさまざまな種類があり、アセンブリに署名できないことから、「App IDは使用できません」という不条理までありますが、実際にはそうではありません(別のバンドルとの置き換えは機能しませんでした)。 したがって、私の意見では、Ad Hocアセンブリを正常にエクスポートするには、Ad Hocプロファイルに加えて、対応するプロファイルのvirgo証明書もインストールする必要があります。 - tvOSアドホック。 前のものと同様、tvOSのみ。
iTunes Connectの概要
このサービスは、TestFlightの内部および外部テストを管理し、アプリケーションをApp Storeにアップロードする機能を提供します。 このプロセスの検討はこの記事の範囲外です。このサービスが正しく機能するには、
Distribution-App Storeタイププロファイル(iOSまたはtvOS用)に基づいて作成されたアセンブリが必要であるという事実のみに言及します。 他のタイプのプロファイルはここではサポートされていません。
要約する
実際、アクティブなApple Developer ProgramでDevCenterにアクセスする場合、アクションのアルゴリズムは次のようになります。
- Xcodeを介してデバイス上のデバイスを直接デバッグするマシンを決定します。 それらの中でメインマシンを識別します(開発者のMacである可能性があり、そこから最も頻繁にデバッグする予定です)。 メインMac用の開発グループ証明書を生成し、ダウンロードしてインストールします。 必要に応じて、これらの証明書に関する情報を* .p12 / *。Pfxファイルにエクスポートします。このファイルは、アプリケーションのデバッグも計画されている他のターゲットマシンに送信できます。
- App Storeでテストおよび/または公開するためにアセンブリを組み立てる予定のマシンを確認します。 そのための配布グループ証明書を生成します。 複数のマシンのサポートが必要な場合は、前の段落のエクスポートで手順を繰り返します。
- App IDセクションで目的のアプリケーション識別子の可用性を確認し、そこに示されているバンドルとXcodeのプロジェクトのBundle Identifierフィールドの値との対応を確認します。不一致がある場合は、devcenterまたはXcodeで削除します(正確に修正される場所は特定の状況によって異なります)。
- すべての証明書を削除(取り消し/削除)してから、期限切れ(期限切れの証明書)または無効(無効なプロファイル)とマークされたプロファイルを削除します。 また、証明書とは異なり、プロファイルを編集できることにも注意してください。 つまり、古いプロファイルを削除するのではなく、新しい証明書を生成することにより、新しい証明書を署名として示すことで簡単に編集できます。
- プロファイルがない場合、または十分なプロファイルがない場合は、必要なプロファイルを生成します。
- コンピューターにマシンに必要な証明書とプロファイルをダウンロードしてインストールします。 ファイルをダブルクリックすると、インストールが完了します。 証明書はApple Keychain、Xcodeのプロファイルにインストールされます。
- ビルド設定-コード署名ID-開発/配布セクションのXcodeプロジェクト設定で必要な証明書を指定し、必要なプロビジョニングプロファイルも指定します。
これで、devcenterの準備とクリーニングが完了しました。 その後、必要に応じて次の項目のいずれかを実行できます。
- devプロファイルを使用して、承認されたデバイスでXcodeを介してデバッグモード(プロジェクト-実行)で実行します。
- 特定のデバイスにインストールするためのアドホック生産プロファイルに基づいて、アセンブリ(プロジェクト-選択したターゲットデバイスの汎用iOSデバイスでアーカイブ)を作成します(このようなアセンブリは、たとえば、承認済みのデバイスにインストールするために顧客に電子メールで送信できます)。
- 前の段落と同様のアセンブリを作成しますが、App Storeの製品プロファイルに基づきます。 これは、iTunes Connectで使用できるApp Storeでの計算だけでなく、内部および/または外部テスト用のアセンブリになります。
この詳細な説明が、Appleアプリケーション認証システムの機能の詳細を理解し、Apple Developer Centerのクリーンアップに役立つことを願っています。