iTunes连接:对Bundle ID感到困惑

mm2*_*m24 14 bundle itunesconnect ios

我很高兴尝试在iTunes Connect上首次添加一个新应用程序来测试我的GAMEKIT功能.

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

在此输入图像描述

为了使用GameKit和InApp购买,我应该创建一个新的Bundle ID吗?

我很困惑,因为:

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

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

Rob*_*gar 26

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

Bundle ID:反向DNS字符串,可精确标识单个应用程序.

Bundle ID搜索字符串:它用于匹配一组bundle ID,其中每个bundle ID标识一个app.例如,如果捆绑包ID搜索字符串是com.mycompany.MyApp或者是通配符com.mycompany.*,则它将匹配捆绑包ID com.mycompany.MyApp.

应用程序ID:标识单个团队中的一个或多个应用程序的字符串.应用程序ID由一个捆绑ID搜索字符串组成,后面跟着团队ID,这是一个由Apple生成的10个字符的字符串,用于唯一标识团队.在您链接的技术说明中,它ABCDE12345称为Bundle Seed ID.

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

现在我将回答你的子弹:

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

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

但是还有更多关于这一切的说法.我建议你像我最近一样阅读" 应用程序分发指南 ".这是一个广泛的指南,但目前您只需阅读" 维护您的签名身份和证书 "和" 维护标识符,设备和配置文件 "主题部分.该指南非常清晰,充满了截图,它将回答您的所有问题.此外,您可以回到路上指南快速解决一些问题(并且您将遇到问题).

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


Gia*_*one 5

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

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