前言:

刚刚把mini换成了macbookair,之前一直在mini上进行开发,到换air之前,第一个项目刚刚上线,第一次申请测试,发布证书等等都是在mini上完成的,由于粗心未能料到,换成air后,就把mini的全部清空,然后二手卖了,之前的开发证书也被我删除了,其实应该备份和导出的。。。。

导致现在在新air上,登陆网站:

想直接下载之前建立好的证书,可是下载双击后,在钥匙串里发现:

总是感觉少点东西,终于发现,我们download的这个证书没有之前开发电脑上的小钥匙了,就是所谓的私人秘钥。

然后在网站的provision标签里下载项目的provisioning文件,看看效果如何:

下载后双击,打开Xcode----organizer,看一看provising files里的status,坏了:

系统识别不了了,也就是说,我们缺少那个之前开发电脑的个人秘钥,就是按照当时首次真机调试网上流程,生成CertificateSigningRequest.certSigningRequest上传,下载的那个私人证书秘钥!!

你是不是也遇到了我这种情况,而现如今,之前开发时的电脑还找不到了,也就是说,无法导出来了。

1,Valid signing identity not found解决办法

解决办法:

一:沿用原来的证书

找到之前开发电脑的证书,导出-导入,这是最简单简便省事的方法!

1,在原来电脑上点开钥匙串访问 工具,找到我们iphone developer 开发证书,然后右键导出

注意那条小钥匙,必须带这个才能导出p12。

右击证书,导出,(p12方式),输入密码,这个密码任意,记住就好。

然后将这个文件拷到新电脑,双击导入,输入刚刚的密码即可。

如果Organizer里面没有显示,则再次双击mobileprovision证书,就可以看到绿色的“Valid profile”。大功告成!

通过P12和证书文件,使用另一Account真机调试

如果你想使用别人的account来真机调试,确保他会发给你以下文件:证书文件、授权文件和p12文件

双击developmentdistribution的cer以及他们的p12文件(有秘钥的话需要输入秘钥),自己的钥匙串会有如下:

再双击dev和distProfile文件(mobileprovision)然后在自己项目的TARGETS和PROJECT中更改Provisioning Profile和Code Signing,更改profile为对方account的Developer和Distribution,如下:

最后,运行如果失败,如下提示:

查看工程的PROJECT下的Code Signing是否更换成了目标account证书,如果没问题,确保目标account添加了你真机测试的Devices!

二、revoke掉,重新生成(建议只有在原来的找不到的情况下)

删掉钥匙串里所有的相关证书,主要是下面这个:
然后到Provisioning Portal,
删掉以前的东西,重新来一次,revoke。
revoke后,发现又回到了最初时的状态,如下图:
很熟悉的样子,又回到了我们第一次上传私钥的步骤,我们在重新制作证书前,先看一下此时distribution标签下的发布证书还有没有,如下图所示,发布证书么有收到牵连,还存在,表明还可以使用:
继续看一下devices栏下的设备是否存在:
继续看一下provisioning files 是否还存在,貌似status变成了invalid的,不过后面有modify选项,貌似可以激活,回头等更新版本时,再来尝试:
继续切换distribution标签的provision files,status还是活跃的,到目前为止,仿佛明白,真机调试,需要具备私钥+(公钥);而发布时,拥有符合的公钥就可以了?
继续下一步,我们看看APP ID 还是否存在,如下图所示:跟之前的一样
综上所述,revoke后,只有对调试的provision files有些影响,其余的都可以照常使用,哪么,我们就可以放心的重新制作证书啦。
我们用钥匙串工具,生成本地的私人秘钥(CertificateSigningRequest.certSigningRequest),通过点击网页上的request Certificate 上传后,apple验证我们的开发者身份,并签名生成(私有+公有)开发证书,按照当时创建的教程再重复一遍。
双击新制作的ios_development.cer之后再打开xocde-organizer,就会发现,provisioning files可以使用了(记得在网站上modify后再下载下来)

2,在MAC下建立多用户进行ios开发时证书和Provisionfile的问题

情景:在一台MAC机上,创建了一个新的用户,然后切换到新用户下,进行ios开发,此时发现真机连接后,在Organizer提示Valid signing identity not found~~~我尝试把主用户下的私钥和证书都拷贝到新用户下,还是不行。可是我在切换回主用户下,一切又没问题了,由此推断:【同一台电脑,建立不同的用户,钥匙串不能共享?】

所以我们目前只有公钥,缺少一个私钥,mac os 下,不同的用户,相当于不同的mac了,我们只能各自生成一个私钥。接下来的步骤,你应该都是熟悉的,打开developer.apple.com网站

1,添加Add iOS Certificate

(如果IOS APP Development不能选择,那么说明你需要revoke掉一个development证书了)

2,在当前用户下生成私钥

钥匙串访问-证书助理-从证书颁发机构请求证书-邮件-名称-存储到磁盘=生成-CertificateSigningRequest.certSigningRequest,然后网站提交,生成一个新的development证书。

3,download新的证书,双击添加到钥匙串里,此时你的新用户下已经有了新的公钥和私钥,那么我们还缺一个provisionfile,打开要使用的provision file-edit,

把我们新创建的development证书添加进来,保存,接下来,就可以再次进行真机调试了,注意先要把手机上原有的provisionfile删除掉,重新添加。至此,打开Organizer,会发现status = Valid profile了。

3,AppleWWDRCA.cer、Development Certificates、App ID、Devices和Provisioning Profiles之间的区别和联系

AppleWWDRCA.cer先来看官方的解释:

在网站的Certificates项中选择-Add iOS Certificate,底部会有这样的描述:

E文不好的可以google翻译一下,大体的意思是如果我们想创建自己的证书(certificate),必须首先要有Apple的中间签名证书(AppleWWDRCA.cer),也就是说首先要下载Apple的中间签名证书,下载后双击就可以添加到钥匙串里了(或许还会自动添加到Xcode),如下图所示:

有了它,我们就可以创建自己的开发者证书,进而进行真机调试或程序发布了,这个东西只需要下载一次就可以了,即便我们有多个IDP,有不同的开发者账号,只需要一个足矣,如果不小心删掉了或是换了电脑,再点击下面的连接下载便可以了。

CertificateSigningRequest.certSigningRequest官方的解释:

With the creation of your CSR, Keychain Access simultaneously generated a public and private key pair. Your private key is stored on your Mac in the login Keychain by default and can be viewed in the Keychain Access application under the "Keys" category. Your requested certificate will be the public half of your key pair.

Download your certificate to your Mac, then double click the .cer file to install in Keychain Access. Make sure to save a backup copy of your private and public keys somewhere secure.

Development Certificates分为 Development和Production(Distribution)前者是开发证书,关系到真机调试,后者是发布证书,关系到发布到AppStore。

创建Development证书时,需要在电脑通过钥匙串生成一个私人秘钥,这就是:CertificateSigningRequest.certSigningRequest 简称CSR,相当于跟Apple说:"我这里有台MAC mMac"!也就是说pending好的development证书相当于某台MAC机上某一个开发者的标识,所以说,团队开发时,不同的开发者应该都要有独自的development证书。

App ID 相当于你创建的某一个工程(项目)的唯一标识,体现在项目中就是创建时填写的Bundle Identifier,在网站添加app id的作用相当于跟Apple说:“我这里有个APP mApp”!

Devices 相当于你的真实测试设备:iphone、iPad、mini等,每一台设备都有identifier(UDID),只有添加到网站上,才会是被apple承认的合法的测试设备,所有的测试设备都要添加进来,相当于跟Apple说:“我这里有台Device mDevice”!

Provisioning Profiles 分为Development和Distribution 前者是开发,关系到联机测试,后者是发布,关系到上传APP到Store。创建时首先要选择类别、其次 App ID(程序的 bundle identifier,我们创建的App ID )、再次选择certificates,也就是说允许哪些个开发者(可多选),最后选择devices,也就是说允许安装在哪些设备(可多选)。所以,无论是Development和Distribution,provisioning file只跟app id绑定,也就是每个App都应该有独自的pro profile。但是一个APP可以允许不同的开发者,在不同的多个设备上调试!所以,Provisioning Profile相当于跟Apple说:"我想 在我的mMac上面,连接到 mDevice ,跑myApp这个app"!

所以综述,Provisioning profile是把 development、App id、device连接起来的桥梁,表面上来看,它跟Appid 和device有关联,你edit某一个profile时,可以随意设置AppID(配置到哪一个APP)、Certificates(允许哪些开发者)、device(允许哪些设备)。

Provisioning profile是否跟mac(development certificate)有关?

也就是说如果我把mMac吊销了,自己又在新的电脑上提交CSR创建了一个新的 mMac2(development certificate),此时之前的provisioning profile还可以继续用吗?

答案是肯定的!不然在创建provisioning profile时,不会让你选择多个MAC(certificates),之所以允许选择多个certificates,本意就是允许团队中不同的开发者,在不同的电脑上使用同一个provisioning profile!

你只需要编辑这个provisioning profile把自己新创建的mMac2(certificates)添加进来就可以了,然后在真机里删除原有的profile、download新的profile添加到真机,就没问题了。

附下传送门,我曾经无知时的提问,现在恍然大悟:

http://www.cocoachina.com/ask/questions/show/97151

ios 换电脑继续使用csr 证书等。相关推荐

  1. iOS客户端校验https网络请求证书

    其实iOS系统的网络请求都有校验,比如NSURLConnection.NSURLSession都有系统的自动校验.具体的校验可进行百度 我使用的是NSURLConnection进行的网络请求,NSUR ...

  2. 商标网上已申请账号换电脑流程

    商标网上已申请账号,换电脑流程 一.导出原来账号的证书文件 导出成功以后会有一个这样的证书文件 二.发送到新的电脑上 把上边的这个证书文件发送新的电脑上 三.恢复到新的电脑上

  3. IOS 7 Xcode 5 免IDP证书 真机调试 【修改自无心圆的博客】

    修改自 IOS 7 Xcode 5 免IDP证书的真机调试. 注意:虽然可以用这个方法实现真机调试,不过不能实现向Apple store 发布APP,其次向Notification这种需要去Apple ...

  4. IOS 7 Xcode 5 免IDP证书 真机调试

    今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调试,不过不能实现向Apple store 发布APP,其次 ...

  5. 苹果IOS模拟器电脑版用哪个好 逍遥模拟器玩部分苹果账号互通

    苹果IOS模拟器电脑版用哪个好 逍遥模拟器玩部分苹果账号互通 网上有IOS模拟器PC版,但是这个是IOS的SDK开发者方便在WINDOWS环境里开发调试IOS应用的,不是用这个模拟器就能直接安装IOS ...

  6. 换电脑了大量数据如何迁移?

    换电脑了数据如何迁移?想必很多人都遇到过这种令人头疼的问题,旧电脑上大量的学习资料.办公文件等,在更换新电脑时,都不得不通过U盘/移动硬盘等存储设备手动拷贝到新电脑上,或者通过QQ等聊天软件一点一点传 ...

  7. iOS企业版分发关于plist和证书的那些事

    iOS企业版分发关于plist和证书的那些事 1.      需要ssl证书 企业版分发的plist下载链接必须是https协议的,所以需要SSL证书.去买个证书,或者免费的第三方平台的:七牛.osc ...

  8. 换电脑后如何快速同步原先设备上vscode的插件

    前两天因为换了一台电脑,导致在新设备上重新装了vscode,然后发现原先设备上vscode里的好多插件都需要一个个搜索再下载下来,觉得很不方便,很麻烦! 于是乎,百度了下有没有什么快捷方便又好用的方法 ...

  9. 做毕设电脑配置不够用?除了换电脑还有其他办法吗?

    马上又临近毕业季了,大多数的学生们已经步入了毕业设计的步伐了,那么对于普通专业的学生来说只需要普通电脑即可完成毕业设计,但是对于设计专业的学生们可就emo了,电脑配置低,内存小等等问题导致毕业设计进程 ...

最新文章

  1. CSDN上究竟可以上载多大的GIF文件?
  2. 第五模块·WEB开发基础-第2章JavaScript基础
  3. 【转载】关于测试人员的职业发展
  4. jenkins~集群分发功能的具体实现
  5. 大道至简,大数据的小窍门
  6. 14、使用play搭建一个web应用用例
  7. 查找练习 hash——出现过的数字
  8. jQuery 2.0.3 - 整体架构
  9. SharePoint自动化系列——通过PowerShell创建SharePoint Lists
  10. Python基础-佛祖镇楼
  11. 每天一道剑指offer-二进制中1的个数
  12. 安装VisualC++出现未安装等错误怎么办
  13. 波特率和比特率之间的关系
  14. GrandTotal for Mac v7.2.2 发票收据预算设计软件
  15. python判断一个数是否为质数(素数)
  16. python图片分析中央气象台降水量预报_全国降水量预报图。图片来源:中央气象台网站...
  17. 计算机创新创业计划2000字,创新创业论文2000字
  18. 从零开始创建自己的博客
  19. 深度学习入门(一)——深度学习是什么?
  20. PTA n个分数相加

热门文章

  1. mapreduce运行的bug收录
  2. 手机裁剪音频的软件有哪些?来看看这几个吧
  3. 服务器的备份文件在哪里找,云服务器系统如何备份文件在哪里看
  4. logback出现大量XXX_IS_UNDEFINED日志文件的问题
  5. 【剁手】科技发烧友最爱的产品,光是看看就想剁手!
  6. 如何编写智能合约(Smart Contract)?(II)建立加密代币
  7. 首页数据展示前端页面
  8. 项目实战 |根据找到的variants的结果生成突变矩阵
  9. linux的c文件报错for,linux c 编译错误 conflicting types for 的解决办法
  10. Linux查看实时网速的Shell