Valid signing identity not found解决办法(原有IDP私钥丢失)

本文分享了在丢失iOS开发证书后,如何找回并重新配置证书的过程。包括从旧电脑导出证书到新电脑,以及当旧电脑不可用时撤销原有证书并重新生成的详细步骤。

转自:http://blog.youkuaiyun.com/mad1989/article/details/8699147


前言:

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


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


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


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


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



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



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


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



解决办法:

一:沿用原来的证书

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

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


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

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

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

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


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

删掉钥匙串里所有的相关证书,主要是下面这个:
Valid signing identity not found - long_wtf - Jeanny
然后到Provisioning Portal,
Valid signing identity not found - long_wtf - Jeanny
 
删掉以前的东西,重新来一次,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后再下载下来)


### 解决 Android Studio 中 `platform.keystore` 缺失的签名配置问题 当遇到 `platform.keystore missing for signing config platform` 的错误时,这通常意味着项目中的构建配置尝试使用一个不存在或者未正确定义的密钥库文件来进行应用签名。以下是关于如何解决此问题的具体说明: #### 1. **确认 Gradle 构建文件中的签名配置** 在项目的 `build.gradle` 文件中,检查是否存在类似于以下的签名配置部分。如果存在,则需要验证路径是否正确。 ```gradle android { ... signingConfigs { release { storeFile file("path/to/platform.keystore") // 密钥库文件路径 storePassword "password" // 密钥库密码 keyAlias "aliasName" // 别名 keyPassword "keyPassword" // 秘钥密码 } } buildTypes { release { signingConfig signingConfigs.release // 使用上述签名配置 } } } ``` 如果路径不正确或缺失,请更新为实际存在的 `.keystore` 文件位置[^1]。 --- #### 2. **创建新的 Keystore 文件** 如果没有现成的 `platform.keystore` 文件,可以使用 Keytool 工具来生成一个新的密钥库文件。执行以下命令以创建新密钥库: ```bash keytool -genkeypair -v \ -keystore path/to/platform.keystore \ -storetype JKS \ -keyalg RSA \ -keysize 2048 \ -validity 10000 \ -alias androiddebugkey ``` 在此过程中,您会被提示输入密钥库密码 (`storePassword`) 和秘钥密码 (`keyPassword`),以及一些其他信息(如姓名、组织单位等)。完成后,记得将生成的 `platform.keystore` 路径填入到 `build.gradle` 配置中。 --- #### 3. **调试模式下的默认签名机制** 如果您仅希望运行调试版本的应用程序而无需手动指定密钥库,可以通过移除 `signingConfig` 来让 Android Studio 自动处理调试签名过程。修改如下所示: ```gradle buildTypes { debug { signingConfig null // 不使用任何自定义签名 } release { signingConfig signingConfigs.release // 继续保留发布版签名 } } ``` 这样可以在开发阶段忽略签名设置的问题。 --- #### 4. **同步并清理项目缓存** 完成以上更改之后,在 Android Studio 中点击菜单栏上的 “Sync Now”,使改动生效。随后建议清除旧编译数据以避免潜在冲突: ```bash ./gradlew clean ``` 重新启动 IDE 并再次尝试构建您的应用程序。 --- #### 5. **部署至 OpenShift 容器平台注意事项** 对于计划部署于 OpenShift 上的服务端组件而言,确保服务层逻辑与客户端 APK 所需资源分离得当;同时注意 CI/CD 流程里可能涉及额外环境变量注入操作以便动态调整诸如证书存储地址之类敏感参数值。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值