iso 上架

今天早上 上班发现钥匙串中的所有证书 都 提示此证书签发者无效

经查找得知系统证书WWDR在2016年2月14日失效,需要更新WWDR系统证书

下载证书地址https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 下载之后 双击安装

到这  还需要一步 

在登陆里面删除过期的证书 在系统里面 删除过期的证书 就可以完美的解决了。所有的证书 都可以使用了

在iOS开发过程中,不可避免的要和证书打交道,真机调试、App上架、打包给测试去测试等都需要搞证书。在此过程中我们会遇到很多的问题,但是如果掌握了真机调试的原理和本质;遇到问题,我们就更容易定位问题之所在,从而迅速的解决问题。这篇文章不是一步步教给你证书,描述文件的制作(其实制作步骤是非常简单的),而是尽可能的讲明白Member Center中的一些知识及原理。并且此文不涉及如何申请开发者账号,以及App上架App Store的流程。

此篇文章的逻辑如下图所示:

图0-0 此篇文章的逻辑图

Certificates

什么是证书

什么是证书?证书就是:证明证书拥有者拥有证书上所说的能力。一个证书要涉及到颁发者,拥有者,证明拥有者拥有了什么能力。例如,CET-4证书;颁发者:学校,拥有者:自己,证明的能力:英语达到四级水平。苹果开发者证书也是一样,颁发者:自己,拥有者:安装证书的电脑;证明的能力:可以安装或者打包某应用程序。开发者证书分为两种类型:Development Certificate(开发证书)和Production Certificate(发布证书)。

开发者证书能力来源

那么当某台电脑安装开发者证书后,这台电脑是如何拥有这种能力的呢?

苹果在此运用了代码签名技术。代码签名验证允许我们的操作系统来判断是谁对App进行了签名,在安装了Xcode后,Xcode会在项目编译期间使用你的代码签名验证,这个验证由一个由Apple认证过的公钥-私钥对组成,私钥存储在你的钥匙串中(Mac本地,在系统实用工具中),公钥包含在证书(Certificates)中,证书在本地钥匙串和开发者账号中都有存储,另外,还有一个我们可以叫做媒介证书的证书来确保我们的证书(Certificates)是经过授权而发布的当安装好Xcode时,媒介证书(Intermediate Certificate)就已经安装到我们的钥匙串中去了。通过在开发者账号(Developer Account)和本地(Mac)都经过验证的证书(Certificate)我们就可以利用合法的证书进行App的测试和发布了。

证书在Xcode工程中所对应的位置

图1-1 证书在Xcode工程中所对应的位置

Identifiers

Identifiers中又分为App IDs、Pass Type IDs、Website Push IDs、iCloud Containers、App Groups、Merchant IDs、这里主要讲解App IDs。

App ID是什么

App ID其实就是一个App的身份证,一个App的唯一标示。在Project中称为Bundle ID。在Member Center、Project、iTunes Connect都是需要此ID去标示此App的唯一性。Bundle ID在不同环境下的表现关系。如(图2-1)所示。

图2-1 Bundle ID在不同环境下的表现

一个Bundle ID精确的标识了一个App。Bundle ID字符串中只能包含字符(A-Z,a-z,0-9),连接符(-),点(.)而且此字符串最好是reverse-DNS格式的。例如你公司的域名是Acme.com,你App的名字是Hello,那么你可以用com.Acme.Hello作为你的Bundle ID。

Bundle ID的作用:

  • 在Xcode工程中,Bundle ID储存在Info.plist中,当你编译工程的时候,他会把此文件拷贝到你的app包中。

    在iTunes Connect,用Bundle ID去标识App,在你第一次构建上传之后,你就不能在改变或者删除你的Bundle ID了。

    在Member Center,你创建一个和Bundle ID相匹配的App ID。如果App ID是精准类型的,你就必须精确的去匹配你的Bundle ID,Bundle ID是大小写敏感的。

在Member Center中添加App ID

在Member Center中添加App ID也是很简单,选中App ID点击右上角的+号,App ID Description就是写一下这个App ID的描述了。App ID Prefix:App ID的前缀,这里苹果为了更精确的保证App ID的唯一性使用了开发者账号的Team ID作为App ID的前缀。App ID Suffix:App ID的后缀,这里有两种类型,一种是精准的,一种是通用的,我们在使用中大多数都是使用精准的,直接把我们的Bundle ID填进去就好。下面就是App包含的服务,这个根据自己业务所需的类型自己选择就可以了,而我们用的最多的也就是Push Notifications推送服务。然后continue就可以了。

Devices

Device就是用来测试的设备。在Member Center中添加device的步骤其实也很简单了,主要就是要拿到device的UDID,这里我们可以利用iTunes、iTools、Xcode这些工具都可以拿到设备的UDID。需要注意的就是,每个开发者账号,每年最多可以添加100台调试设备,而且不能更改,想要更改就要等到下一年重新续费的时候才能更改调试设备了。在下面要讲述的描述文件中只有发布到App Store和In House的时候这两种类型的描述文件的制作是不需要添加device的,而其他描述文件的制作都是需要添加device的。具体使用情况,参考下面的【Provisioning Profiles】。

使用iTunes查找UDID

图3-1 使用iTunes查找UDID

使用Xcode查找UDID

选择Xcode工具条上的Window,然后选Devices选项。

图3-2 使用Xcode查找UDID

Provisioning Profiles

描述文件描述了可由哪台电脑,把哪个App,安装到哪台手机上面。一个描述文件的制作是需要上面的一些信息的。所以苹果在Member Center中把这个文件的制作排在最后面是很合理的。描述文件其实可以分为两种类型,一种是带有device信息的;而另一种是不带device信息的。

带device信息的描述文件

图4-1带有device信息的描述文件

这种类型的描述文件包括所有开发类型的描述文件和发布到Ad Hoc上面的描述文件,因为做这些事情的时候,都有很明确的目的,这个App要安装到哪台设备上面。

不带device信息的描述文件

图4-2不带device信息的描述文件

不带device信息的描述文件只有发布到App Store和In House两种情况下才使用这个描述文件,因为通过这两个渠道发布的App我们是不能确定将来那一台设备才会安装,只让也就不会带有App的信息。

描述文件在Xcode中的位置

图4-1 描述文件在Xcode中的位置

团队开发证书的管理

在团队开发的时候,最好是一个人去管理证书,当有其他人要用的时候,可直接导出.p12证书供其他开发者使用。证书出了问题,我感觉还是相当麻烦的,而App ID在添加之后,基本上是不会改变的,除非要为App添加新的服务,这时候才要重新编辑App ID,所以App ID最好也是管理证书的人去管理App ID。添加设备这一块就很随意了,所有的开发者都应该有权去管理添加设备这一块。描述文件的制作这个要区分一下是开发类型的描述文件,还是发布类型的描述文件。开发类型的描述文件应该是团队里的每一个开发者都有权去管理的,实际上当开发类型的描述文件出现问题的时候,开发者可以对此描述文件重新编辑一下进行使用,这样是不会影响其他开发者的,甚至你可以自己重新制作一个描述文件也没什么问题。但是发布类型的描述文件,这个最好还是管理证书的那个人去管理这个描述文件。打包发布的时候如果这个描述文件出现变化,还是很麻烦的,而且这个描述文件对于团队其他开发者来说也不是很常用,甚至是根本用不到这个描述文件。以上这些就是我个人对于团队开发证书管理的建议,当然也有不足之处,如你有好的建议,也欢迎你私密我,共同交流,共同进步。

举例使用

上面几段可能原理性的内容过多了一些,但是个人感觉掌握这些原理还是很有必要的。下面举个例子,对应上面的原理,讲一下实际的运用。

产品需求:我的一个App,包含推送功能,在开发状态下已经测试完成所有功能,但是这时产品经理为了保证产品在上线后也万无一失,就想测试一下上线后,推送的功能是否稳定。这时我们的App还没有上线,那我们要怎样才能去测试这样的一个功能呢?

分析这个需求,要测试上线后推送功能,其实无非就是看上线后推送的证书会不会出现什么问题。这时候我们就会想到Ad Hoc。因为发布App除了App Store渠道之外,还可以选择Ad Hoc。这时候我们就先选定用哪几部手机进行测试,先添加到device中,然后开始制作描述文件。点击右上角+号 -> 然后选择Distribution中的Ad Hoc -> 点击continue -> 选择你要测试的App的App ID -> 点击continue -> 选择你发布到App Store时候所用的证书 -> 点击continue -> 选择你要安装的测试设备 -> 给此描述文件起一个名字 -> 点击generate。这样你就生成了一个发布到Ad Hoc上面对应的描述文件,用此描述文件打包出来的App和发布到App Store上面的App用的是同一个证书,所以在此情况下App的推送没有什么问题,基本可以推断App上线之后应该也是没有什么问题的。

总结

对于苹果开发者证书不是太了解的同学,证书问题可能是非常头疼的一件事情。因为开发者账号有三种类型,而在制作证书的时候,有开发证书,发布证书以及一些附带属性的证书,以及添加App ID,Device,制作描述文件,感觉就是很乱,搞了一堆的东西,最后也不知道这些东西到底都是干什么用的,运气好的话,可能这样瞎搞一通,App就能跑到真机上面了,但是也不排除,瞎搞一通,还是有各种问题。所以我们在学习知识的时候,还是要尽可能的去了解他的原理。关于开发者证书,我们还要根据实际需求自己去做一些判断,来满足实际的需求。这篇文章看起来可能有些乱,而且有些地方也没有提到。一些不足之处,还请多多见谅,同时也欢迎你私密我,私下交流共同探讨,共同进步。


概述:

苹果的证书繁锁复杂,制作管理相当麻烦,今天决定重置一个游戏项目中的所有证书,做了这么多次还是感觉很纠结,索性直接记录下来,日后你我他查阅都方便;

首先得描述一下各个证书的定位,作用,这样在制作的时候心中有谱,对整个流程的把握也会准确一些;

1、开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的;

2、appID,这是每一个应用的独立标识,在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter,以及更常见的push服务,如果选中了push服务,那么就可以创建生成下面第3条所提到的推送证书,所以,在所有和推送相关的配置中,首先要做的就是先开通支持推送服务的appID;

3、推送证书(分为开发和发布两种,类型分别为APNs Development ios,APNs Distribution ios),该证书在appID配置中创建生成,和开发者证书一样,安装到开发电脑上;

4、Provisioning Profiles,这个东西是很有苹果特色的一个东西,我一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时需要在PP文件中添加真机的udid;是真机调试和必架必备之珍品;

平常我们的制作流程一般都是按以上序列进行,先利用开发者帐号登陆开发者中心,创建开发者证书,appID,在appID中开通推送服务,在开通推送服务的选项下面创建推送证书(服务器端的推送证书见下文),之后在PP文件中绑定所有的证书id,添加调试真机等;


具体操作流程如下:

1、开发者证书的制作,首先登陆到开发者中心,找到证书配置的版块,猛戳进入,点进证书,会显示如下界面,点击右上角的加号

会出现以下界面,该操作重复两次,分别创建开发测试证书和发布证书,开发测试证书用于真机调试,发布证书用于提交到appStore,我们以开发测试证书为例,选择第一个红框中的内容;
然后下一步,会提示创建CSR文件,也就是证书签名请求文件,会有很详细的操作说明,如果英文不太好,可以参考下图;


之后将该CSR文件保存到一处;

备注:CSR文件尽量每个证书都制作一次,将常用名称区分开来,因为该常用名称是证书中的密钥的名字;

之后在开发者中心将该CSR文件提交;

提交上去后就会生成一个cer证书,如图所示,有效期为一年;


利用同样的方法配置一下Distribution发布证书,下载保存,双击安装;在钥题串登陆证书中可以查看,其中专用密钥的名字即为CSR请求文件中的常用名称;


2、以上开发者证书的配置完成了,下面我们来配置appID和推送证书;在左边栏中选择appID,勾选右边的push可选项,为该appID所对应的应用添加推送功能,下面会看到创建证书的按钮,分别为开发证书和发布证书,下面的流程就和上述1中创建证书一样了,都是先建立证书请求文件,然后提交生成就行了,需要注意的是,虽然在左边栏证书栏中也可以直接创建推送证书,但是还是建议在appID中,勾选了push服务后在此处创建,这样会避免因为忘了开通push服务而导致推送不可用的情况发生;


证书创建完成后,下载保存,双击安装即可;

3、最后我们来进行PP文件的制作



该流程进行两次,分别创建开发测试用PP文件和发布PP文件,前者用于真机测试,后者用于提交发布;Ad Hoc格式一般用于企业帐号,此处我们忽略;

选择后提交

会自动检测匹配appID,另外下拉项中还可以选择wildCard格式,该格式为自动生成,使用*通配符,适用于批量的,没有推送,PassCard等服务的应用;我们选择我们刚刚创建的appID,之后下一步选择证书;


继续,这里有一个区别,因为PP文件的开发测试版需要真机调试,所以我们需要绑定真机,这里因为之前我添加过一些设备,所以这里就可以直接全选添加,如果没有的话,需要将真机的udid复制出来在此添加,在发布PP文件中,是没有这一步的;


之后就是输入一个PP文件的名字了,然后生成,下载保存,双击添加到Xcode库中,这样在真机调试或者发布时,就可以分别有不同的PP文件与其对应;


添加到Xcode中的效果如下:



到目前为止,客户端开发和上架所需要的证书文件配置都已经配齐了,天色已晚,明天再配置服务端所用到的推送证书吧,到时候另起一章,将ios诡异的推送流程也捋一捋,本来想写到一篇里的,没想到整了这么长,下班回家开黑去喽!


Certificates, Identifiers &Profiles 简介

Certificates

  • Certificates 即 ”证书“,约等于通行证,申请证书是我们进行真机调试与发布的第一步。证书有两种:

    1、 开发证书 ( Development Certificates ),主要是授权mac设备的开发权限

    2、 发布证书 (Distribution Certificates ), 主要是授权mac设置发布权限

Identifiers

  • Identifiers 即”标识符“,约等于是身份证,用于创建以下三个:

    App IDs 

    Pass Type IDs

    Website Push IDs

其中,App ID是应用的唯一标示符,每一个应用的app id是不一样的


Devices

  •  Devices 用于创建测试设备,一个99美元允许创建100个设备


Provisioning Profiles

  • Provisioning Profiles 即“描述文件”。它的功能很特别,专门用于将 Certificates、Identifiers、Devices结合起来,形成一个描述证书、标示符的描述文件Provisioning Profiles 放入我们的xcode中,让 xcode知道我们的证书和哪些设备之类的信息相匹配。


下面来介绍如何申请证书:

第一步:申请本地证书

申请证书必须在我们的电脑上先申请一个证书,找到  

                                

点击"其他",找到“钥匙串”:

                              

选择从颁发机构申请证书,注意下面的红色框,必须选择那一个才可以:

                            

点击后看到:

                                       

如果选择 “存储到磁盘”,那么“用户邮件地址” 随便填一个就好,点击“继续”:

                                       

“存储为:”可以给证书命名,选择一个位置,点击“存储”:

                                       

这样在桌面就生成了一个证书。

注意这一个本地证书可以同时用来生成“开发证书”和“发布证书”。


下面只介绍“发布证书“的申请,申请”开发证书“步骤相同,就是换一个选项 

第二步: 在开发者账号里申请证书              

我们进入99美元开发账号看到:

                         

点击 Certificates, Identifiers & Profiles,进入页面看到:

                                               

如果要申请开发证书就选择 Development,如果要申请发布证书,就选择 Production,步骤都是选择“+”号后添加证书:

                                                     

点击“+”后看到:

                                                     

如果是选择 “开发证书”,点击第一个红框

                                    

如果是选择 “发布证书”,点击第二个红框

                                              

选择好后,点击“continue”:

                                                          

点击后出现:                                                  

选择“Choose File” 将刚刚申请的保存在本地的证书上传:

                                                         

                                                         

上传好后,点击“Generate” 就可以生成证书了。


选择“Download”。

这时,我们在本地生成的证书就没用了,可以删除。


我们返回到证书的界面可以看到我们申请的证书:

一般申请一个 发布证书(IOS Distribution),一个开发证书(IOS Development)就够用了。


找到下载的文件,双击它,添加到钥匙串里就好了。在这一步里,如果钥匙串拒绝添加,直接将其拖进钥匙串就行:

这样证书就申请完毕了,有了证书后,接下来可以申请各种各样的描述文件供开发使用




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
校园失物招领系统管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、论坛管理、公告信息管理、失物招领管理、失物认领管理、寻物启示管理、寻物认领管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 校园失物招领系统管理系统可以提高校园失物招领系统信息管理问题的解决效率,优化校园失物招领系统信息处理流程,保证校园失物招领系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 ,管理员权限操作的功能包括管理公告,管理校园失物招领系统信息,包括失物招领管理,培训管理,寻物启事管理,薪资管理等,可以管理公告。 失物招领管理界面,管理员在失物招领管理界面中可以对界面中显示,可以对失物招领信息的失物招领状态进行查看,可以添加新的失物招领信息等。寻物启事管理界面,管理员在寻物启事管理界面中查看寻物启事种类信息,寻物启事描述信息,新增寻物启事信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值