App ID是识别不同应用程序的唯一标示符。每个app都需要一个App ID或者app标识。
目前有两种类型的App标识:一个是精确的App ID(explicit App ID),一个是通配符App ID(wildcard App ID)。
使用通配符的App ID可以用来构建和安装多个程序。尽管通配符App ID非常方便,但是一个精确的App ID也是需要的,
尤其是当App使用iCloud 或者使用其他iOS功能的时候,比如Game Center、Push Notifications或者IAP。
如果你不确定什么样的App ID适合你的项目,我推荐你读下苹果关于这一主题的文档:Technical Note QA1713。
Distribution Certificate(发布证书)
iOS应用都有一个安全证书用于验证开发者身份和签名。为了可以向App Store提交app,你需要创建一个iOS provisioning profile 。
首先需要创建一个distribution certificate(发布证书),过程类似于创建一个development certificate(开发证书)。
如果你已经在实体设备上测试你的App,那么你对创建development certificate就已经很熟悉了。
如果对此不熟悉,我建议你读下苹果关于signing certificates和provisioning profiles的详细指导。
Provisioning Profile(配置文件)
一旦你创建了App ID和distribution certificate,你可以创建一个iOS provisioning profile以方便在App Store中销售你的App。
不过,你不能使用和ad hoc distribution相同的provisioning profile。
你需要为App Store分销创建一个单独的provisioning profile,如果你使用通配符App ID,那么你的多个app就可以使用相同的provisioning profile。
Build Settings(生成设置)
配置App ID、distribution certificate 和provisioning profile已经完成,是时候配置Xcode中target的build settings了。
在Xcode Project Navigator的targets列表中选择一个target,打开顶部的Build Settings选项,然后更新一下Code Signing来跟之前创建的distribution provisioning profile相匹配。
最近添加的provisioning profiles有时候不会立马就在build settings的Code Signing中看到,重启一下Xcode就可以解决这个问题。
Deployment Target(部署目标)
非常有必要说下deployment target,Xcode中每个target都有一个deployment target,它可以指出app可以运行的最小版本。
不过,一旦应用在App Store中生效,再去修改deployment target,你要考虑到一定后果。
如果你在更新app的时候提高了deployment target,但是已经购买应用的用户并没有遇到新的deployment target,那么应用就不能在用户的移动设备上运行。
如果用户通过iTunes (不是设备)下载了一个更新过的app,然后替代了设备上原先的版本,最后却发现新版本不能在设备上运行,这确实是个问题。
证书主要分为两类
Development和Production,
Development证书用来开发和调试应用程序,
Production主要用来分发应用程序(根据证书种类有不同作用),下面是证书的分类信息:(括号内为证书有效期)
- Development
- App Development (1年):用来开发和真机调试应用程序。
- Push Development (1年):用来调试Apple Push Notification
- Production
-
In-House and Ad Hoc (3年):用来发布In-House和AdHoc的应用程序。
-
App Store :用来发布提交App Store的应用程序。
- MDM CSR
- Push Production (1年):用来在发布版本中使用Apple Push Notification。
- Pass Type ID Certificate:用于通行证类证书
- Website Push ID Certificate
-
有一些类型的证书我没有使用过,所以也不了解具体的作用。
证书
1)Developer Certification(开发证书)
2)Distribution Certification(发布证书)
授权文件
1)Developer Provisioning Profile(开发授权文件)
2)Distribution Provisioning Profile(发布授权文件)