MacOS制作软件签名证书(M1 Pro芯片)
软件的发布打包需要使用签名证书,一般打包平台(例如uniapp)会提供公共测试版本证书,方便测试,但是使用这类证书的软件应用不能上架各大软件商店。这个时候还是需要自己制作签名证书。
另外,一些文章写的时间比较老,使用的是intel芯片,此次文章中是基于M1 Pro芯片实现的,对于apple自研芯片应该都有参考意义。
制作安卓软件签名证书
java相关环境
一般需要先检查macOS的自带的java版本
java -version
没有java或者java版本过低,一般需要自行下载安装jdk,推荐jdk8版本,经典永不褪色。
不过由于 Apple M1 芯片采用的是 ARM 架构,而 OpenJDK 的官方版本目前仍然只支持 x86 架构,因此在 Apple M1 芯片的 macOS 上使用 OpenJDK 可能会出现兼容性问题。
不过,有一些第三方社区提供了针对 Apple M1 芯片的 OpenJDK 版本,例如 Adoptium 社区提供了适用于 Apple M1 芯片的 OpenJDK 16 版本和 OpenJDK 11 版本
brew install --cask adoptopenjdk/openjdk/adoptopenjdk16
OpenJDK 和 Oracle JDK 在功能和性能方面非常相似,都可以用于开发和运行 Java 应用程序。两者的主要区别在于许可证和支持方面.
Oracle JDK 是商业软件,需要向 Oracle 公司购买许可证才能在生产环境中使用。Oracle JDK 提供了商业支持、安全更新、性能调优等功能,同时还包括了一些高级功能(如 Java Mission Control、Java Flight Recorder 等),适合于在商业环境中使用。
OpenJDK 是开源软件,它的源代码是公开可用的,并且可以免费使用和分发。OpenJDK 也提供了商业支持和更新,但这些服务通常由第三方提供,而不是由 Oracle 公司提供。OpenJDK 也缺少 Oracle JDK 中的某些高级功能,但对于一般的 Java 开发和运行,OpenJDK 已经足够了。
因此,如果您需要在商业环境中使用 Java,那么建议您使用 Oracle JDK,以获得更好的支持和服务。但如果您只是进行一般的 Java 开发和运行,那么 OpenJDK 可以满足您的需求,并且具有更加灵活的许可证和更好的开源性。
安装完成后,您可以在终端中输入以下命令,以验证 JDK 环境是否已经成功安装:
/usr/libexec/java_home -V
// 返回值
Matching Java Virtual Machines (1):
11.0.11 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
其中/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
就是JDK在Mac的路径,接下来要在这个步骤上
继续
安卓证书生成
首先进入上面的JDK目录
cd /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
执行证书生成命令,将下面的test字段换成你设置的名字
sudo keytool -genkey -alias test.keystore -keyalg RSA -sigalg SHA1WithRSA -validity 20000 -keysize 1024 -keystore test.keystore -v
如上图所示,已经成功生成了,证书就在/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
这个路径下面
查看证书内容
执行下列代码查看,就可以得到该证书的具体信息了
keytool -list -v -keystore /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/test.keystore
高版本JDK生成的证书的证书指纹已经不显示MD5的值了,如果要查看MD5的值,可以采用1.8.0版本。但是M1系列芯片没办法使用,所以没有办法。
可以使用老mac版本(Intel芯片)、Windows电脑来看,配合着jdk8。
制作ios签名(未完待续)
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。