ios 换电脑继续使用csr 证书等。

news/2024/11/25 14:43:43/

前言:

刚刚把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


http://www.ppmy.cn/news/441158.html

相关文章

白苹果了怎么办_建行储蓄卡云闪付bug还款玩法(苹果和安卓机攻略)

小白玩卡指南在上一篇提到 建行龙支付多倍积分攻略 活动3:建行储蓄卡手机闪付5倍积分 2019.10.1~2019.12.31建行借记卡(储蓄卡)使用手机闪付5倍积分,上限20000积分。 预估收益:活动总计6万积分100元 很多人不知道怎么去使用,今天就…

刷机提示图像和设备不匹配_苹果用户一定要学会的刷机教程,包治百病

如果苹果要卖给你的不仅是iPhone 的硬件,更核心的是装在iPhone里面的iOS系统 很多时候iPhone出现各种各样的小问题,并不是硬件造成的,大多数还是因为系统软件的问题,如果重启大法解决不了,那你可能需要刷机 今天教大家,如何给iOS设备刷机 首先需要准备 硬件:Mac或者PC电…

解析Android平板电脑落败四大原因

去年消费电子展上,Android平板电脑令人耳目一新,引发追捧无数。然而,一年过去了,iPad依然是平板王者,后起之秀KindleFire的表现也可圈可点,这更加衬托出Android平板先扬后抑且乏善可陈的局面。美国IT资讯网…

FL Studio Producer Edition v21.0.3 Build 3517 for Mac官方中文免费终极解锁版下载支持苹果M1/M2处理器

FL Studio Producer Edition v21.0.3 Build 3517 for Mac官方中文免费终极解锁版下载是一款强大的数字音频工作站(DAW)软件,为您提供一个完整的软件音乐制作环境。它是制作高质量的音乐、乐器、录音等的完整解决方案。该程序配备了各种工具和…

Android pad 刷成苹果,利用安卓手机运行checkra1n越狱你的iPhone/iPad教程,支持12.3-13.5-13.7-14.3-14.4系统...

很多朋友试用的苹果设备满足了checkra1n越狱的要求,但又满足不了又电脑的条件,所以今天给大家出一篇利用安卓手机运行checkra1n给苹果iPhone、ipad、appleTV的越狱教程,支持的系统版本为iOS12—iOS12.5.1,iOS13—iOS13.7,iOS14—iOS14.4,可以说从iOS12—最新版本都是支持…

蓝牙HID——android利用手机来解锁电脑/平板/iPhone

前言 此篇文章基于上一篇HID键盘的开发文章: 蓝牙HID——将android设备变成蓝牙键盘(BluetoothHidDevice) 可先了解上篇文章的内容再来浏览此篇。 开发思路 首先需要建立HID键盘连接,参考上篇。 mBluetoothHidManager new Blu…

苹果电脑双系统如何切换,CrossOver兼容双系统无需切换轻松帮你解决

苹果笔记本电脑双系统如何切换?其实就和我们在windows电脑上装双系统的切换方法差不多。只要进入开机启动项界面选择要登陆的系统即可,下面我们一起来看看具体的操作步骤: 首先需要在电脑上安装好双系统,然后再选择需要的系统进行…

FreeRTOS实时操作系统(二)系统文件代码学习

文章目录 前言系统配置任务创建任务创建删除实践 前言 接着学习正点原子的FreeRTOS教程,涉及到一些详细的系统内文件代码 系统配置 可以通过各种的宏定义来实现我们自己的RTOS配置(在FreeRTOSconfig.h) “INCLUDE”:配置API函数…