应用程序ID和软件包ID有什么区别? Xcode项目中的应用程序ID在哪里?

在pList文件中,有一个forms为com.mycompany.myapp的包ID,但是Apple也在开发人员门户上提供了一个应用程序ID。

因此,基本上,捆绑ID的用途是什么? 我们在哪里可以findXcode项目中的应用程序ID?

OP问题的答案

应用程序ID和软件包ID有什么区别?

由于大多数人认为App ID是一个string,他们认为它可以与Bundle ID互换。 它看起来是这样的,因为一旦在成员中心中创build了应用程序ID,您只能使用与应用程序包的捆绑ID相匹配的应用程序ID前缀

Xcode项目中的应用程序ID在哪里?

您在Xcode中找不到应用程序ID。 它是会员中心的一个对象(不只是一个string)。 Xcode是发现Bundle ID的地方。 在创build新项目时指定。 (下面的截图)项目中的每个目标都有唯一的Bundle ID。 可以通过selectProject Navigator中的项目来select目标,并从Jump Bar中selectGeneral或Info来find/更改它。

Xcode接口在这里或者这里被描述 (取决于苹果当天的感受)。

捆绑ID有什么用?

它唯一地定义每个应用程序。 它在Xcode中指定。 一个Xcode项目可以有多个目标,因此可以输出多个应用程序。 这是一个常见的使用案例,既有lite / free和pro / full版本,也有多种方式的品牌。


定义

  1. 应用程序ID

    将此视为会员中心中有大量元数据的对象,其中包括:

    • 应用程序ID说明
    • 应用程序ID前缀
    • 应用程序ID后缀
    • 应用服务
  2. 应用程序ID说明

    字母数字加空格

    有时候你会看到这个,而不是App ID,或者下拉菜单按这个App IDsorting

    (我总是把这个和App ID一样,把点改成空格)

  3. 应用程序ID前缀

    从Team ID格式的可用哈希列表中进行select(请参阅下面的内容)

    你几乎总是要select一个标有“(Team ID)”的标签

  4. 应用程序ID后缀

    一个反向域名风格的string

    这必须匹配在Xcode中指定的Bundle ID

  5. 显式应用程序ID

    使用不包含通配符的App ID后缀来描述App ID

    只能与一个应用程序关联(通过完全匹配一个Bundle ID)

    兼容所有的应用程序服务

  6. 通配符应用程序ID

    用App ID后缀描述以星号结尾的App ID

    可以与多个应用程序关联(类似于CLI / bash shell通配符匹配)

    游戏中心应用程序内购买推送通知应用程序服务不兼容

  7. 应用服务

    一个组合

    • 数据保护
    • 游戏中心
    • iCloud的
    • 在应用程序内购买
    • 应用程序间audio
    • 存折
    • 推送通知
  8. 团队ID

    10个字符的字母数字散列

    每个开发人员帐户都是独一无二的(如帐户每年费用99美元,而不是帐户中的每个开发人员)

  9. 苹果ID

    在iTunes Connect中首次创build应用程序时由Apple分配的唯一整数。

  10. 捆绑ID

    一个反向域名风格的string

    在Xcode中定义

    在设备或模拟器上唯一标识应用程序包

    必须有一个与Apple注册的相匹配的App ID才能部署

    用于区分应用程序更新与新应用程序

  11. 应用程序包

    Xcode中生成过程的结果。 虽然它有.ipa的扩展,但它是一个zip文件。 内容是一个非常具体的目录结构,并拥有应用程序所需的一切。 它看起来像有人从/应用程序采取一个Mac .app文件,放在一个名为Payload目录,压缩它,然后更改扩展名。

  12. 目标

    每个Xcode项目至less有一个目标。 每个目标都指定一个可以从项目构build的应用程序。

  13. SKU

    Apple允许您在iTunes Connect中为每个应用程序存储股票持有单位string(字母数字,不能有空格)。 除此之外,苹果公司不会为此做任何事情,除非将其显示在logging保存的报告中。


在Xcode中创buildXcode iOS项目对话框

创建Xcode iOS项目截图


在会员中心创build应用程序ID页面

创建App ID截图


iTunes Connect中的应用程序信息页面

iTunes Connect截图

Bundle ID是App的标识符,但App ID不是。 应用程序ID是应用程序和configuration文件之间的连接。

从这里的“关于捆绑ID”一节中,您可以看到“捆绑ID可以精确地识别一个应用”。

从这里 ,你可以看到:“应用程序ID的主要用途是作为configuration文件的一部分;它指定哪些应用程序由configuration文件授权进行签名和启动。”

应用程序ID有两部分:“捆绑种子ID”和“捆绑IDsearchstring”。 捆绑种子ID使应用程序共享钥匙串数据,也就是说,它是具有相同捆绑种子ID的应用程序的钥匙链条目。 捆绑IDsearchstring定义此App ID涵盖了多less个应用程序。 如果您使用通配符应用程序ID ,则意味着许多应用程序将由与此应用程序ID关联的供应configuration文件授权。 有关更多详情,请参阅此处 。

多个应用可以共享相同的应用ID。 应用程序ID不能唯一标识一个应用程序。

应用程序ID是一个由两部分组成的string,用于标识来自单个开发团队的一个或多个应用程序

https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/AppID.html

您在iTunes Connect中看到的ID在应用程序中唯一的,称为应用程序的Apple ID。 我很抱歉,因为苹果公司没有人会这样做。

简单地说,一个包ID就能精确地识别一个应用。 软件包ID在开发过程中用于供应设备,当应用程序分发给客户时由操作系统使用。

在开发过程中,您可以在许多不同的地方使用应用程序的包ID来识别应用程序。 在这里输入图像说明

而应用程序ID是一个由两部分组成的string,用于标识来自单个开发团队的一个或多个应用程序。

在这里输入图像说明

团队ID由Apple提供,对于特定的开发团队是唯一的,而您提供的包IDsearchstring是为了匹配单个应用的包ID或一组应用的包ID。

有两种types的应用程序ID:用于单个应用程序的显式应用程序ID和用于一组应用程序的通配符应用程序ID。

来源: 捆绑ID , APP ID

App ID是两个string组合,以句点(。)分隔。 String1是分配给开发团队的团队ID (由apple提供) String2是一个bundle ID ,由你select。

App ID有两种types。

  1. 显式应用程序ID:这里的团队ID是只匹配一个应用程序与特定的包ID。 此应用程序ID仅用于匹配一个应用程序 。 例如:TEAM_ID.BUNDLE_ID

  2. 通配符应用程序ID:这里的团队ID是用多个捆绑ID匹配多个应用程序。 这个应用程序ID用于匹配多个应用程序 。 示例:TEAM_ID.BUNDLE_ID1,TEAM_ID.BUNDLE_ID1 …