windows下申请huilderX打包所需要的安卓以及ios证书以及密钥文件

发布时间 2023-07-20 09:37:34作者: 城北徐公A

背景:HbuilderX打包app时,需要证书和密钥文件,ios包所需要的证书和密钥需要在苹果电脑上申请,如果身边没有Mac也没有关系,我们也可以在windows环境下生成一系列文件。

1.生成安卓包所需要的keystore文件

可以通过https://www.yunedit.com/香蕉云编,非常方便。进入后点击安卓证书生成,填写完点击下载保存就可以了

 在打安卓应用包的时候,填写对应的信息就可以了

2.生成打ios应用所需要的证书以及密钥

2.1.先安装 OpenSSL,如果您还没有安装 OpenSSL,请先下载并安装它。您可以从以下链接获取 OpenSSL 的 Windows 版本:https://slproweb.com/products/Win32OpenSSL.html,这里有1.0版本和    3.0版本,

 

 可以根据自己的实际情况下载,这里需要注意,如果下载3.0版本,可能会导致生成的.p12文件无法被正确导入,在使用huilderX打包的时候会报错,类似于这样的错误:

Error code = -5000
Error message:
Error: certificate file(p12) import failed!
私钥证书(p12)导入失败。

这里我们把两个版本的方法都列出来,都可以试试。

OpenSSL 1.0版本:

下载完之后,直接双击下载完成的.exe文件就行,一路点击next最后安装完成,可能会弹出一个窗口让我们进行赞助,不用管它我们直接关掉就好。

接下来在电脑搜索栏输入“cmd”,已管理员身份运行命令行

进入OpenSSL的bin目录下面,因为我的openSSL默认安装在C盘在命令行输入cd C:\Program Files\OpenSSL-Win64\bin,这将生成一个名为 ios_private.key 的私钥文件,用于后续步骤:

openssl genrsa -out ios_private.key 2048

回车,检查一下bin目录下是否有红色区域文件,有就说明执行成功

接下来生成证书签名请求(CSR): 使用生成的私钥文件生成证书签名请求(CSR)。运行以下命令:

openssl req -new -key ios_private.key -out ios.csr

运行该命令后,您需要提供一些信息,如国家、省份、城市、组织等。最重要的是 Common Name(通用名称),这里应该输入与您的开发者账号关联的 App ID。完成后,将生成 ios.csr 文件。这里需要注意,Common Name这里需要输入和你的屏柜开发者账号关联的App ID,也就是你要打包的这个应用的App ID

接下来申请开发者证书: 使用 CSR 文件申请开发者证书。登录 Apple Developer 网站(https://developer.apple.com/),进入 Certificates, Identifiers & Profiles 页面,点击蓝色的加号

 

按照步骤上传您生成的 CSR 文件并申请开发者证书。

 

 

 这里上传后点击下载生成的文件并把它放进OpenSSL的bin目录下面,ios_distribution.cer是我下载下来的文件名

OpenSSL 3.0版本看这里

这里如果你下载的OpenSSL时3.0版本的,直接在命令行运行以下命令将证书和私钥合并为 .p12 文件:

openssl pkcs12 -export -out ios_cert.p12 -inkey ios_private.key -in your_developer_certificate.cer

注意将 your_developer_certificate.cer 替换为你下载的开发者证书文件的名称。还可以为 .p12 文件设置密码以保护私钥的安全性

OpenSSL 1.0版本看这里

如果你下载的OpenSSL为1.0版本,需要拿着苹果中心返回的 certificate(原文件名是 ios_distribution.cer 可以改个名字)文件在 OpenSSL 生成.pem 文件,在命令行执行

x509 -in <自定义的名字>.cer -inform DER –out <自定义的名字>.pem -outform PEM

然后生成.p12文件

pkcs12 -export -inkey <自定义的名字>.key –in <自定义的名字>.pem -out <自定义的名字>.p12 -password pass:123456<自定义>

到此文件都已经生成完毕,我们可以新建一个单独的文件夹,用于存放该应用的证书以及密钥,方便管理