web-dev-qa-db-ja.com

iTunes Connect:バンドルIDで混乱しています

GAMEKITの機能をテストするために、iTunesConnectに新しいアプリを初めて追加しようと思っています。

this テクニカルノートを読みましたが、開発を開始したときに作成したアプリのバインドIDがすでにあるため、混乱しています(これは、現在のプロビジョニングを作成した現在のバンドルIDであり、テストプロファイル:hello- *)。

enter image description here

GameKitとInAppPurchaseを使用するには、新しいバンドルIDを作成する必要がありますか?

私は混乱しています:

  • 現在のバンドルIDが有効かどうかわかりません(上記のリンク先のテクニカルノートに関して)
  • バンドルIDが、後でアプリに追加できるもの(App Purchase、GameKitなど)に影響を与えるかどうかはわかりません。
  • 名前(例:HelloApple)で、ワイルドカード付きのバンドルID(例:hello- *)で新しいアプリを作成した場合、後の段階で同じ名前で異なるバンドルIDで新しいアプリを追加できます。 ?これは確かに、2つのアプリのいずれかを公開する前です。
  • ワイルドカードを使用するか使用しないかの選択がある理由を完全には理解していません。言い換えると、アプリの購入とGameKitで使用するためにワイルドカード以外のバンドルIDが必要な場合、開発者がワイルドカードのアプリIDを使用する必要があるのはなぜですか?

特に最初の問題を解決する必要があります。GameKitとInAppPurchaseを使用するには、どのバンドルIDを使用する必要がありますか?

14
mm24

あなたの質問に答える前に、いくつかの定義:

バンドルID:単一のアプリを正確に識別する逆引きDNS文字列。

バンドルID検索文字列:バンドルIDのセットを照合するために使用されます。各バンドルIDは単一のアプリを識別します。たとえば、バンドルIDの検索文字列がcom.mycompany.MyAppまたはcom.mycompany.*などのワイルドカードの場合、バンドルID com.mycompany.MyAppと一致します。

アプリID:単一のチームからの1つ以上のアプリを識別する文字列。アプリIDは、バンドルID検索文字列の前にチームID、Appleチームを一意に識別します。 テクニカルノート でリンクするのはABCDE12345であり、バンドルSeedIDと呼ばれます。

(開発)プロビジョニングプロファイル:これを使用して、アプリがデバイスで起動し、開発中に特定のストアテクノロジーを使用することを承認します。これは、単一のアプリID、デバイスのセット、および開発証明書のセットで構成されます。プロビジョニングプロファイルはメンバーセンターで作成され、アプリを実行するにはデバイス上で必要です。 XCodeは、プロビジョニングプロファイルをダウンロードして、デバイスにインストールできます。

今、私はあなたの弾丸に答えます:

  • Game-Center(GameKit)とIAPを使用するには、明示的なアプリID、つまりバンドル付きのアプリIDが必要です。 *のないID検索文字列ワイルドカードアプリIDは、バンドルID検索文字列に*、そしてあなたが今持っているものです。
  • 最初に作成するのは、バンドルIDが関連付けられたアプリIDです。明示的な場合は、Game-CenterとIAPを追加できますが、ワイルドカードのアプリIDでない場合は、それだけです。
  • 名前は異なるが、明示的なアプリIDまたはバンドルIDが同じ2つのアプリを使用することはできません。ただし、Game-Centerを使用しない名前の異なる2つのアプリ、またはワイルドカードアプリIDを使用する一意のアプリIDを持つIAPを使用できます。
  • ワイルドカードが役立つ理由を尋ねられます...まあ、Game-CenterまたはIAPを使用しない場合は、ワイルドカードアプリIDに2つ以上のアプリを関連付けることができると言いました。次に、このアプリIDを使用してプロビジョニングプロファイルを作成できます。このプロビジョニングプロファイルは、すべてのアプリのデバイスにインストールするだけで済みます。 Team Provisioning Profileと呼ばれるこのタイプのデフォルトのプロビジョニングプロファイルがあります。これはすべてのアプリに有効ですが、有効なより具体的なプロファイルを作成できます。すべてのアプリのサブセット用。

このプロセスは、大規模なチームにとって非常に役立ちます。チームが小さく、アプリが少ない場合は非常に混乱しますが、その背後にある理由を理解するのに役立ちます。

しかし、これについてはもっと言うことがあります。最近読んだように、「 アプリ配布ガイド 」を読むことをお勧めします。これは広範なガイドですが、現時点では、トピック " 署名IDと証明書の保守 "および " 識別子、デバイス、およびプロファイルの保守 "のセクションを読むだけで済みます。 。ガイドは非常に明確で、スクリーンショットでいっぱいで、すべての質問に答えます。また、ガイドに戻って問題をすばやく解決することもできます(問題が発生します)。

1年以上前にGame-CenterとIAPを使用してアプリを初めて作成したとき、すべての質問に答えるためにstackoverflowを調べました。しかし、証明書の有効期限が切れたとき、新しいデバイスを追加したときなど、何度もいじってスタックオーバーフローに戻った後、アドホックソリューションを見つけるたびに問題が発生していました。誤解しないでください。stackoverflowには素晴らしい答えがありますが、全体像を説明するより長いものを読むことは、私の経験でははるかに優れた戦略です。アプリID、バンドルID、証明書、秘密鍵などは、特にこのように構築されている理由がわからない場合は、厄介な問題です。

26
Roberto Canogar

バンドルIDは、アプリの単なる識別子です。これは主に、App Storeに送信する前にアプリに署名するため、または開発デバイス(テストなど)で使用するために使用する必要のある証明書を提供するために使用されます。バンドルIDは任意です。 Appleは、構文com.yourcompany.yourappを使用して、開発するアプリ間で一貫性を保ち、他のアプリの識別子との競合を回避することをお勧めします。

ワイルドカードはすべてのアプリで使用できますが、特定のIDは1つのアプリでのみ使用できます。各アプリのIDと、開発用のワイルドカードのみを用意することをお勧めします(アプリの出荷を決定するまで、証明書を気にすることなく、デバイス上で必要な数のアプリを実行できます)。すべてのアプリですべてのサービス(Game CenterやiCloudなど)にアクセスする必要はないため、アプリに必要なサービスだけで単一の証明書に署名することをお勧めします。

私が思うのはApple欲しいのは:

  1. アプリ内購入/ GameKitまたはその両方を使用するアプリごとに異なるバンドルIDを作成します。

  2. 同じApp-IDと、これらを使用しないアプリのバンドルIDを持つことができます。

  3. アプリ用に持っているbundleIDが他のアプリで使用されていない場合は、それを使用できます。

もっと知識のある人、間違っていたら訂正してください。

2
user2050128