iTunes连接:对Bundle ID感到困惑

时间:2013-06-12 12:29:27

标签: ios itunesconnect bundle

我很高兴尝试在iTunes Connect上首次添加一个新的App来测试我的GAMEKIT功能。

我已经阅读了this技术说明,我感到困惑,因为我已经开始开发它时创建了我的应用程序的边界ID(这是我当前的捆绑ID,我创建了当前的配置和测试档案:你好 - *)。

enter image description here

为了使用GameKit和InApp Purchase我应该创建一个新的Bundle Id吗?

我很困惑因为:

  • 我不知道当前的Bundle Id是否有效(关于上面链接的技术说明)
  • 我不知道他的Bundle Id是否会影响我以后可以在应用程序中添加的东西(例如在App Purchase,GameKit中......)
  • 如果我创建一个带有名称的新应用程序(例如:HelloApple),但带有带通配符的包ID(说:hello- *),我将能够添加一个具有相同名称但不同的包ID的新应用程序后期?这确实在发布两个应用程序中的任何一个之前。
  • 我不完全理解为什么在使用或不使用通配符之间可以选择;换句话说,如果在App buy和GameKit中需要使用非通配符包ID,开发人员为什么要使用通配符App Id?

任何帮助将不胜感激,特别是我需要解决我的第一个问题:我应该在ordert中使用哪个捆绑ID来使用GameKit和InAppPurchase?

3 个答案:

答案 0 :(得分:25)

在回答你的问题之前有一些定义:

捆绑ID :反向DNS字符串,可准确识别单个应用。

捆绑ID搜索字符串:它用于匹配一组捆绑ID,其中每个捆绑ID标识单个应用。例如,如果捆绑包ID搜索字符串为com.mycompany.MyApp或通配符(例如com.mycompany.*),则它将与捆绑包ID com.mycompany.MyApp匹配。

应用ID :标识单个团队中的一个或多个应用的​​字符串。应用程序ID由团队ID搜索字符串组成,后面是团队ID ,这是Apple生成的10个字符的字符串,用于唯一标识团队。在您链接的technical note中,它是ABCDE12345并称为捆绑种子ID。

(开发)配置文件:您可以使用它来授权您的应用在设备上启动,并在开发时使用某些商店技术。它包括:单个App ID,一组设备和一组开发证书。配置文件在会员中心中创建,您需要在设备上运行它们才能运行您的应用。 XCode可以下载配置文件并将其安装到设备上。

现在我将回答你的子弹:

  • 要使用Game-Center(GameKit)和IAP,您需要显式应用ID ,即带有捆绑ID搜索字符串且没有*的App ID。 外卡应用ID 捆绑ID搜索字符串,其中包含*,并且是您现在拥有的那个。
  • 您最初创建的是具有关联的Bundle ID的App ID。如果它是显式的,你可以添加Game-Center和IAP,如果它是通配符应用程序ID而不是......那就是它。
  • 您不能拥有两个名称不同但具有相同显式App ID或Bundle ID的应用程序。但是,您可以使用通配符应用程序ID,使用具有不同名称且不使用具有唯一应用程序ID的游戏中心或IAP的两个应用程序。
  • 你问为什么通配符很有用......好吧,我说如果你不使用Game-Center或IAP,你可以有两个或更多的应用程序与通配符App ID相关联。然后,您可以使用此应用程序ID创建配置文件,只需在设备上为所有应用程序安装此配置文件。这种类型的默认配置文件称为团队配置文件,它对您的所有应用程序都有效,但您可以创建对您所有应用程序的子集有效的更具体的配置文件。

这个过程对大型团队非常有用。如果你有一个小团队和很少的应用程序,它真的很混乱,但它有助于理解它背后的原因。

但是还有更多关于这一切的说法。我建议你像我最近一样阅读“App Distribution Guide”。这是一个广泛的指南,但目前您只需阅读主题“Maintaining Your Signing Identities and Certificates”和“Maintaining Identifiers, Devices, and Profiles”的部分。该指南非常清晰,充满了截图,它将回答您的所有问题。此外,您可以回到路上指南以快速解决一些问题(并且您将遇到问题)。

我第一次使用Game-Center和IAP在一年多前创建了一个应用程序,我查找了stackoverflow来回答我的所有问题。但是,当证书过期,我添加新设备等时,我遇到了问题,每次我发现和Ad-hoc解决方案经过大量的摆弄并回到stackoverflow之后。不要误解我的意思,在stackoverflow中有很好的答案,但根据我的经验,阅读更长的内容可以解释大局。应用程序ID,捆绑ID,证书,私钥等是一个混乱的主题,特别是如果你不明白它为什么以这种方式构建。

答案 1 :(得分:5)

捆绑包ID只是您应用的标识符。它主要用于为您提供在提交到App Store之前用于签署应用程序所需的证书,或者在开发设备上使用它(例如用于测试)。 bundle id可以是你想要的任何东西。 Apple建议使用语法com.yourcompany.yourapp使其与您开发的应用程序保持一致,并避免与其他应用程序的标识符冲突。

可以在所有应用中使用通配符,而特定ID只能与一个应用一起使用。我建议你为你的每个应用程序设置一个id,并且只有一个用于开发的通配符(这样你就可以在你的设备上运行任意数量的应用程序,而不必担心证书,直到你决定发布应用程序)。您无需在所有应用程序上访问所有服务(如Game Center或iCloud),因此您只需使用应用所需的服务即可更好地签署单个证书。

答案 2 :(得分:2)

我认为Apple想要的是:

  1. 为使用应用内购买/ GameKit或两者的每个应用创建不同的捆绑ID。

  2. 对于不使用这些应用的应用,您可以拥有相同的App-ID和捆绑ID。

  3. 如果您的应用程序的bundleID未用于任何其他应用程序,则可以使用它。

  4. 有些人知之甚少,如果我错了,请纠正我。