App ID 和Bundle ID 有什么不同?ios面试攻克篇(六)


'写在前面的话'
这些是我对iOS面试时会碰到的问题的解决方法,整理出来分享给大家,有些错误不要
笑了,希望对大家有所帮助。大家有更好的解决办法也欢迎沟通交流。
一直以来都有写点儿东西的想法,就从笔记、从阅读开始吧,加油!'


1、基础概念

Bundle identifier就是应用的标识符,表明应用和其他App的区别。
Bundle ID唯一地定义每个App。 它在Xcode中指定。 单个Xcode项目可以有多个目标,因此可以输出多个应用程序。 一 个常见的用例 - 具有lite / free和pro / full版本或品牌多种方式的应用程序。

app id是应用商店取的,效果也是一样的。
App ID是一个由两部分组成的字符串,用于标识来自单个开发团队的一个或多个应用程序。 该字符串由一个Team ID和一个Bundle ID搜索字符串组成,句点(。)将这两个部分分开。

Team ID由Apple提供,对于特定开发团队是唯一的,而开发人员提供Bundle ID搜索字符串,以匹配单个应用程序的Bundle ID或一组应用程序的Bundle ID。
由于大多数用户将App ID视为字符串,因此他们认为它可与Bundle ID互换。 在成员中心中创建App ID后,您只能使用 与应用程序包的Bundle ID匹配的App ID Prefix。


2、下面从几个方面来简单介绍下吧!!

什么是 Bundle ID ?Bundle ID格式 ?如何创建Bundle ID ?Bundle ID 怎么查 ?常见的 Bundle ID ?

什么是 Bundle ID ?

Bundle ID 「Bundle identifier」也叫 App ID 或者应用 ID,

是每一个 ios 应用的唯一标识,就像一个人的身份证号码;

申请 ios 证书、打包 ipa 和在 itunesconnect 创建 App 都要用到 App ID, 整个 App 上架流程就是靠这个 App ID 关联在一起。

无论代码怎么改,图标和应用名称怎么换,只要 bundle id 没变,ios 系统就认为这是同一个应用。

每开发一个新应用,首先都需要先去创建一个 bundle id。

bundle id 分为两种:

  • Explicit App ID「明确的 App ID」,一般格式是:com.company.appName;这种 id 只能用在一个app上,每一个新应用都要创建并只有一个。
  • Wildcard App ID「通配符 App ID」, 一般格式是:com.domainname.* ;这种 id 可以用在多个应用上,虽然方便,但是使用这种id的应用不能使用通知功能,所以不常用。
安卓系统是 Package name,是Android系统中是判断一个 App 的唯一标识;
ios 是 bundle id,android 是 packageName,
一般情况下都叫 bundle ID 或者 App ID,默认大家都知道说的是个啥;

由于苹果和谷歌的原因,同一个应用的 android packageName 和 ios bundle id 不同,
比如,微信:
ios bundle id 是:com.tencent.xin
android packageName 是:com.tencent.mm

Bundle ID格式 ?

App ID 的格式为:com.company.appName 比如微信ios的是 com.tencent.xin ,一般好认、好记就行。但其实情况主要是看申请那个人的心情。

如何创建 Bundle ID ?

创建 Bundle ID 唯一标示符 App IDs

ios:https://developer.apple.com/account

android:https://developer.android.google.cn/studio

在Eclipse中只有package name的概念,没有application ID。
而在Android Studio 中把package name 拆分为了两部分package name和application ID。
Android Studio 中 application ID 和 Eclipse 中的 package name 代表了应用的唯一性,
如果在设备中和市场中已安装过应用,下次升级安装时application ID必须保持一致,
如果更换了application ID,设备和市场会认为该应用为一个新的应用。

Bundle ID 怎么查 ?

技术有生产工具,看起来很轻松。对一般用户来说,比较麻烦;

android 的,一些手机上查看设置,正在运行的应用可以看见;

可以在七麦上看,例如微信:

https://www.qimai.cn/andapp/baseinfo/appid/9

ios的,没找到好方法一般百度,然后通过下面链接验证:

根据bundle ID获取App Store的App信息:https://itunes.apple.com/lookup?bundleId=你APP的Bundle ID

返回这样一个txt说明是对的:

image

常见的 Bundle ID ?

应用:苹果 - 安卓

微信:com.tencent.xin - com.tencent.mm

QQ: com.tencent.mqq - com.tencent.mobileqq

今日头条:com.ss.iphone.article.News - com.ss.android.article.news


3、总结

App ID 是一个组合字符串,它包括两个部分,一个是开发团队的 ID,另一个是标识应用的 Bundle ID,它们之间是用点隔开的。开发团队的 ID 是苹果公司提供给开发者的,这个 ID 可以唯一标识一个开发团队;Bundle ID 是开发者自定义的唯一标识一个应用的。一个团队的 ID 和不同的 Bundle ID 组合可以得到不同的 App ID,这个 App ID 就可以标识该团队的不同的应用,开发者需要通过 App ID 来使自己的应用可以获取丰富的苹果服务。
Bundle ID 也就是 App ID 的后半部分,是一个 App 应用的唯一标识符,由开发者自定义,可以在 Xcode 工程中查看和设置(正式开发中一旦定义了是无法修改的,只能新建一个新的应用),在 Xcode 中全称叫作 Bundle identifier。

例如,在同一个工程中,发布时可能会有试用版和 Pro 版,或者免费版和付费版,它们可以通过设置不同的 Bundle ID 来区分。另外,如果让某个工程 A 运行安装到手机设备上,Bundle ID 假设为「team.test」,然后打开另外一个工程 B,将工程 B 的 Bundle ID 也设置为「team.test」,然后运行安装到同一个设备,那么会发现之前工程 A 安装的应用被覆盖掉了,这也证明了 Bundle ID 是一个应用的唯一标识。

文章来源:https://www.zhihu.com/search?type=content&q=App%20ID%20%E5%92%8CBundle%20ID%20


谢谢你长的这么好看,还关注我!!!点个赞呗!!
这就是响应链相关的点,如果有什么不对的请留言提示,然后有什么别的需要改进的提示请联系我我会及时补充~

over.over.

你可能感兴趣的:(App ID 和Bundle ID 有什么不同?ios面试攻克篇(六))