IOS证书申请和打包流程

IOS证书申请和打包流程

参考资料:

  • iOS 证书申请和使用详解
  • iOS完整的证书申请和打包过程
  • iOS开发证书与配置文件的使用
  • iOS 证书详解
  • iOS导出4个ipa包的含义
  • 苹果开发者账号中,测试机器列表达到100台上限,想要删除一些设备、添加新设备,怎么办?
  • 提交 App 以供审核
  • App Store审核指南

证书申请

step1:生成钥匙串CSR文件

1)打开 ->钥匙串访问

IOS证书申请和打包流程_第1张图片

2)打开右上方钥匙串访问栏->证书助理->从证书颁发机构请求证书…

IOS证书申请和打包流程_第2张图片

3)填写一个邮箱地址,选择“存储到磁盘”,点击继续。

IOS证书申请和打包流程_第3张图片

4)保存生成的钥匙串文件。

申请成功后的文件:

IOS证书申请和打包流程_第4张图片

Keychain将生成一个包含开发者身份信息的CSR(Certificate Signing Request)文件。同时,Keychain Access->Keys(密钥)中增加一对Public/Private Key Pair。

  • 私钥(private key)始终保存在Mac OS的Keychain Access中,用于签名(CodeSign)对外发布的App。

  • 公钥(public key)一般随证书散布出去,对App签名进行校验认证。

step2:注册项目的Bundle ID

1)登录(99美元账号)苹果开发者中心

IOS证书申请和打包流程_第5张图片

2)选择“Certificates”:

IOS证书申请和打包流程_第6张图片

3)点面板中的App IDs 右上角的加号。

4)填写App ID的名字

IOS证书申请和打包流程_第7张图片

5)填写bundle ID:

IOS证书申请和打包流程_第8张图片

App ID(bundle identifier)

App ID即Product ID,用于标识一个或者一组App。

App ID字符串通常以反域名(reverse-domain-name)格式的Company Identifier(Company ID)作为前缀(Prefix/Seed),一般不超过255个ASCII字符。

App ID全名会被追加Application Identifier Prefix(一般为TeamID.),分为两类:

  • Explicit App ID:唯一的App ID,用于唯一标识一个应用程序。例如“com.apple.garageband”这个App ID,用于标识Bundle Identifier为“com.apple.garageband”的App。

  • Wildcard App ID:含有通配符的App ID,用于标识一组应用程序。例如“*”(实际上是Application Identifier Prefix)表示所有应用程序;而“com.apple.*”可以表示Bundle Identifier以“com.apple.”开头(苹果公司)的所有应用程序。

App ID应该和Xcode中的Bundle Identifier是一致(Explicit)的或匹配(Wildcard)的。

IOS证书申请和打包流程_第9张图片

App ID在xcode中被配置到【XcodeTarget|Info|Bundle Identifier】下;对于Wildcard App ID,只要bundle identifier包含其作为Prefix/Seed即可。

6)选择App需要支持的服务,如:app需要推送服务,就勾选Push Notifications。点击“continue”

IOS证书申请和打包流程_第10张图片

7)最后会有一个详细的内容列表,对应无误后,提交完成。注册结束。

step3:申请证书

iOS证书是用来证明iOS App内容(executable code)的合法性和完整性的数字证书。对于想安装到真机或发布到AppStore的应用程序(App),只有经过签名验证(Signature Validated)才能确保来源可信,并且保证App内容是完整、未经篡改的。

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。具有时效性,只在特定的时间段内有效。

1)点击面板的Certificates右上角的“+”号(也可直接点击“Certificate”下的“Development”或“Production”,直接选择申请开发证书或生产证书)

2)选择证书的类型,下面罗列我们iOS开发常用的证书类型

IOS证书申请和打包流程_第11张图片

Certification(证书)

证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:

  • Developer Certification(开发证书)

  • 安装在电脑上提供权限:开发人员通过设备进行真机测试。

  • 可以生成副本供多台电脑安装;

  • Distribution Certification(发布证书)

  • 安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。

  • 不可生成副本,仅有配置该证书的电脑才可使用;

3)如果是申请推送证书,则会关联一个App ID

IOS证书申请和打包流程_第12张图片

4)上传我们之前建好的CSR文件(详见step1)

5)下载证书,双击导入Keychain Access,可在Keychain Access->“证书”中查看。

6)展开安装的证书(*.cer)前面的箭头,可以看到其对应的私钥。在KeychainAccess->“密钥”中展开创建CSR时生成的Key Pair中的私钥前面的箭头,可以查看到包含其对应公钥的证书.

导出证书(可选)

1)打开Keychain Access,选择安装成功的证书,右键选择“导出”

IOS证书申请和打包流程_第13张图片

2)输入名字,默认格式为.p12类型,选择“Save”

IOS证书申请和打包流程_第14张图片

3)设置密码,点击“OK”

IOS证书申请和打包流程_第15张图片

安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本(导出证书重新命名)就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。

注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。

Step4:添加测试设备

Device就是运行iOS系统用于开发调试App的设备。每台Apple设备使用UDID来唯一标识。

iOS设备连接Mac后,可通过iTunes->Summary或者Xcode->Window->Devices获取iPhone的UDID(identifier)。如果觉得麻烦,或则条件不允许可以选择蒲公英提供的方式(https://www.pgyer.com/doc/view/udid)

Apple Member Center网站个人账号下的Devices中包含了注册过的所有可用于开发和测试的设备,普通个人开发账号每年累计最多只能注册100个设备。

用户可在网站上注册或启用/禁用(Enable/Disable)已注册的Device。

这里面的devices ID的创建是为了保证在真机调试时,Xcode能够通过配置文件找到你当前连接的机器是否为已经添加过devices ID的手机,如果不是,不可能调试成功,有新的设备调试,在Xcode中也可以上传这个Devices ID的。

开发描述文件(Provisioning Profiles)必须绑定设备,所以在申请开发描述文件之前,必须要添加调试的设备(已添加可跳过)。

填写完下一步就好了。

IOS证书申请和打包流程_第16张图片

苹果开发者账号中,测试机器列表达到100台上限,想要删除一些设备、添加新设备,怎么办?

每次续约时,有管理员权限的人可以登录deveoper.apple.com,删除掉一些不需要的机器,这些名额会空闲出来,这样就可以添加新机器。(请注意,一旦你进行机器添加操作,之后再删除的机器就不会空出名额了)

如果确实有需要,要在账号续约的一年中,再次重置机器列表,怎么做呢?—向苹果客服发送请求

  1. 找到反馈问题的Program Contact页面,页面位置可能发生变化,目前是 https://developer.apple.com/contact/submit.php
  2. 登陆Agent账号,也就是创建团队的根账号。
  3. 填写问题,发送,等待客服联系你。

setp5:申请授权文件(Provisioning Profile)

授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App Id,即:使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App Id对应的程序。

这个profiles其实最终是安装到Xcode里的,它关联证书、App ID、和Device ID,把前三者结合起来,生成一个可安装的配置文件(后缀名为.mobileprovision),用于Xcode进行真机调试,用于发布应用也一样,在进行App打包生成ipa文件时,也会去验证你的证书和profiles,这也是你能否打包成功的关键。

开发者帐号在创建授权文件时候会选择App Id,(开发者帐号下App Id中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。

授权文件分为两种,对应相应的证书使用:

  • Developer Provisioning Profile(开发授权文件)

在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;连接调试的设备的UDID在选中的授权文件中有记录。

  • Distribution Provisioning Profile(发布授权文件)

在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。

  • 发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID;
  • 测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App Id和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。
  1. 一个Provisioning Profile对应一个Explicit App ID或Wildcard App ID。
  2. Provisioning Profile决定Xcode用哪个证书(公钥)/私钥组合(Key Pair/Signing Identity)来签名应用程序(Signing Product),将在应用程序打包时嵌入到.ipa包里。
  3. Provisioning Profile把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用。这样,只要在不同的情况下选择不同的Provisioning Profile文件就可以了。
  4. Provisioning Profile也分为Development和Distribution两类,有效期同Certificate一样。Development版本的ProvisioningProfile用于开发调试,Distribution版本的ProvisioningProfile主要用于提交App Store审核,其不指定开发测试的Devices。
  5. xcode开发时,需在XcodeTarget->Build Settings->Code Signing->Provisioning Profile下配置对应的描述文件(Provisioning Profiles),然后在Code Signing Identity下拉可选择Identities from Profile “…”(即Provisioning Profile中包含的Certificates)。
  6. 在XcodeTarget->Build Settings->Code Signing->Provisioning Profile可选择“Automatic”,xcode会根据该Target的“Bundle identifier”选择默认的配置文件及证书。

系统根据配置文件提供的信息进行一一校验,从AppID到Entitenments,从数字证书到设备UDID等,最后运行应用程序到设备。如下所示:

此外,DistributionProvisioningProfile与Development Provisioning Profile类似,它没有Device配置信息。

1)选择授权文件类型,下面罗列了iOS常的授权文件类型

IOS证书申请和打包流程_第17张图片

2)选择关联App ID

IOS证书申请和打包流程_第18张图片

3)选择关联的证书.你配置开发证书,那这里就只有开发证书供你选择。配置发布证书,这里就只有发布证书供你选择。如果是配置开发证书,就还会需要你设置,在这个项目中添加哪些设备作为真机调试的设备

IOS证书申请和打包流程_第19张图片

4)选择授权的设备(通过 UDID),除了企业证书(inHouse)外,只有你添加的设备才能进行调度或测试。如果是生产证书配置文件,则不会出现该页面(生产证书用于发布,不能进行开发调试)

IOS证书申请和打包流程_第20张图片

5)给授权文件命一个能和其它授权文件区分的名字

6)完成创建后,只要下载这个配置文件,双击运行就可以了。然后退出网页。证书就已经申请好了,配置好了。你也可以真机调试,也能发布了。(Xcode7 以后不需要开发者账号也能真机调试,只要你在Xcode登陆 Apple ID 账号,不过发布还是需要开发者账号的)步骤:

登陆成功后,在窗口右下角选择“View Details”。在弹出的页面中,Download前面创建的证书。

然后下面会出现Fix Issue 按钮点击就好了,系统自动帮你调试好。(个人理解:这里的Bundle ID最好在后面加点后缀,不然你已经在网页注册过这个Bundle ID这里就会报错,或则你这里把Bundle ID注册了,你另外的账号就得换个Bundle ID了)

打包发布

打开 iTunes Connect (https://itunesconnect.apple.com) 登陆账号;

不懂填写什么,可以点问号都是中文的提示

创建后就进入

填写完了,右上 存储 按钮,保存下。然后继续:

先上传APP截图,最新的规定是只要上传5.5寸的截图就可以了;视频,看个人,好像是十几秒左右吧,我没上传过,图片、视频的内容要是APP中真实存在的;然后就是APP描述(描述的内容要与APP相符合),关键词(据说不能出现竞品的名字,没考证过),技术支持网址,营销网址(两个网址没有也可以用公司的网站);下面部分:

         

注意:自2018年10月3日起,App Store Connect 将要求所有的新 App 和 App 更新都提供隐私政策,才可提交至 App Store 或通过 TestFlight 外部测试进行分发。此外,您只有在提交 App 的新版本时,才能编辑 App 的隐私政策链接或文本。

都填写完了,就存储下。然后检查有没有错误,或则写错的。 (填写过程中,最好填写完一些就存储下,防止网络出问题,白弄,特别是上传完截图)然后回到Xcode,打开你的项目:

下面是导出ipa的提交方式:

iOS导出4个ipa包的含义

  1. Save for iOS App Store Deployment
    保存到本地 准备上传App Store 或者在越狱的iOS设备上使用
  2. Save for Ad Hoc Deployment
    保存到本地 准备在账号添加的可使用设备上使用(具体为在开发者账户下添加可用设备的udid),该app包是发布证书编译的(The app will be code signed with the distribution certificate.)
  3. Save for Enterprise Deployment
    这种主要针对企业级账户下 准备本地服务器分发的app
  4. Save for Development Deployment
    针对内部测试使用,主要给开发者的设备(具体也为在开发者账户下添加可用设备的udid)。该app包是开发证书编译的(The app will be code signed with your development certificate)

后面几步也是选择发布证书,检查发布配置文件(注:如果是导出到分发网站的ipa,发布的配置文件必须是 Ad-hoc 的,企业级账号还可以是 In-house ,详细参考:蒲公英的说明),然后选择保存路径。然后在Xcode里面打开:

运行后,登陆开发者账号。把ipa文件添加进去,下一步 ,下一步,就可以提交到 iTunes Connect了。(提交到分发网站的请参考:https://www.pgyer.com/doc/view/app_upload)步骤差不多,就不详解了。提交过程的快慢跟网速有关,成功后就可以关闭Xcode了,回到 iTunes Connect。

进入活动。查看项目是否构建完成;如果完成了,就继续:

添加完构建版本,存储下,整个资料的填写提交差不多完成。然后设置:

这个根据个人需求,设置价格,销售范围等等。完了检查下,看有没有错误的地方。没有就可以点击右上角的提交以供审核了。

还有一个,你也可以添加APP在APPStore上的本地化,APPStore会根据你做的本地化,实现不同地区的账号看到你的APP显示的是本地化的语言,如果你没做本地化,那么显示就是你的APPStore主要语言

在“版本发布”部分中,选择一个发布选项:

  • 由您自己发布该 App: 请选择“手动发布此版本”(稍后手动发布此版本)
  • 在 App 被批准后自动发布: 请选择“自动发布此版本”
  • 自动发布该 App,但时间不早于某个特定日期: 请选择“在 App 审核后自动发布此版本,时间不早于”,并在此选项下使用控件输入某个日期
  • 首次将您的 App 发布至 App Store 时,您可以选择将您的 App 以预订形式发布。若您的 App 支持预订,则其他“版本发布”选项将从平台版本信息页面移除

最后就是这个页面了,还是一样有就有,没有就没有,选择提交。就是等待审核了。现在新提交应用,我个人测试 3个工作日上架了,更新迭代的应用是24个小时上架了。这个具体,看运气了。

解决提交上去了,等待构建完成.突然发现在活动中看不到构建的版本的问题:

检查邮件,是不是因为权限问题,构建失败了,所以没有显示构建版本;检查Xcode的Info中应用需要的权限是不是没有对应的Value,没有的话,构建版本是会失败的。解决好权限问题后,修改Xcode的构建版本号bundle Version,如原先的构建版本 为1.0.0,就修改为1.0.0.0,只要app的版本号维持不变,构建版本号与之前的不同就可以了。

总结

1)成功安装测试证书的条件:a).开发者证书+私钥。 b).授权文件。

2)如果你想通过证书进行真机调试,请选择开发版证书(Development Certificate),和相应的授权文件(Development Provisioning Profile) 。

3)如果你想让更多的开发者能进行真机调试,请先对需要真机调试的设备进行授权,然后将开发版证书(Development Certificate)下载到本机安装后导出为带私的.p12的文件,和相应的授权文件(Development Provisioning Profile)交由开发者安装,成功后即可进行真机调试。

4)如果你想让更多的机子进行真机测试,请先对需要测试的设备进行授权,然后选择生产版证书(Distribution Ad_hoc Certificate)和相应的授权文件(Distribution Ad_hoc Provisioning Profile)打包后分发给要测试的设备即可。

你可能感兴趣的:(ionic)