uni-app Android平台云端打包证书使用说明
uni-app Android平台云端打包证书使用说明
Android 应用签名证书指南
支持的证书类型
-
使用自有证书
- 开发者自己生成证书,正式发布应用时推荐使用此类型证书。
-
使用云证书
- DCloud云打包机自动生成证书,适用于开发证书。
-
使用公共测试证书
- 已下线。请勿使用。
-
使用DCloud老版证书
- 兼容老项目使用之前的DCloud证书时选择,此证书已废弃,请勿使用。
关于Android证书的用途
证书是一个开发者的身份标志,对Android系统而言。使用一个证书签发的App,是属于同一个开发者的App。
举个极端的例子,如果你的应用证书泄露,那么别人可以用这个证书签名一个仿冒App,假如包名和你的包名也一样,就可以覆盖安装安卓手机上你之前的包。
当前仅依赖证书校验是不完善的,所以主流的Android应用市场,通过实名认证开发者信息和著作权,强化了App的唯一性。也就是从主流应用市场点更新,不会发生冒充事件。但是通过其他方式安装apk,仍然会发生冒充的可能性。
如果签名不同,即使包名相同,也无法覆盖安装。此时安卓手机会在安装时报错,需要先卸载老的版本,才能安装新版。
证书安全说明
Android的应用安全管理模型,包括包名、证书、应用市场的账户。
包名是公开的,任何人都可以做一个apk包,包名和你的应用包名相同。那么如何防止仿冒包?
- 他人没有你的应用市场账户,就无法在市场发布仿冒包。
- 他人没有你的签名证书。不过这一点,现实中有很多问题,手机用户是没有识别能力的。大多数安卓手机上也无法查看应用的签名信息。
证书使用说明
使用自有证书打包发布
开发者如果已经有自己的安卓证书,可直接使用。如果没有,使用JDK的keytool工具生成一个,不像Apple证书那样收费,制作Android证书没有费用。
完整教程参考Android平台签名证书(.keystore)生成指南
注意以下问题:
- 证书文件密码(storepass)和证书密码(keypass)必须一致,HBuilder|HBuilderX默认这两个密码一致。
- 证书别名使用英文字母或数字(老版本HBuilder不支持使用中文别名)。
- 证书名称建议使用英文字母或数字,避免使用中文。
生成证书后注意保存,不要泄露。
提交云端打包时,如下图配置:
提交云端打包后,打包机会立即删除的证书,不会保存或泄露证书,请放心使用。
使用云端证书(服务器生成的证书)
生成自有证书需要配置jre环境,为了方便开发者快速生成证书云端打包,从HBuilderX3.2.0及以上版本开始支持服务器生成证书。
在App打包界面可以直接勾选“使用云端证书”。
云证书的优势是开发方便。但在发布商业应用时,商业组织往往会分离开发证书和发布证书,发布证书仅少数人掌管。
DCloud建议开发阶段使用云证书,开发者打包出apk后,交给掌管发布证书的人员使用发布证书自行重签,再上架应用商店。
注意:
- 服务器生成的证书绑定应用appid,即每个appid会各自生成证书。
- 服务器生成的证书会自动填写证书信息,不支持自定义证书信息,有效期为100年。
- 查看或下载服务器生成的证书,请登录DCloud开发者中心
- DCloud不对开发者证书管理行为不规范引发的问题负责。
使用公共测试证书打包
为了方便开发者评估、测试体验,可直接使用公共测试证书打包,免去制作证书的麻烦。
证书信息参考:公共测试证书信息
注意:
- 所有开发者都能使用此证书打包。
- 证书可以被所有人下载。
- 证书信息为Test。
此模式已下线,请勿使用
使用DCloud公用证书
因为此证书包含DCloud公司名称信息,与实际应用的所有者信息描述和省份不符,为了保障开发者利益及安全要求,已废弃此证书。
详情参考:DCloud公用证书
注意事项
注意证书有一个特点,用A证书打包后,后续新版若改用B证书,会导致升级包无法安装。因为相同包名但签名不同时,Android rom不允许安装新包。所以商用第一版应用发布时,证书一定选择好。
证书的区别如上,如何选择证书,每位开发者根据自己的需求定夺。
开发环境、版本号、项目创建方式
项目创建方式 | 版本号 |
---|---|
HBuilderX | 3.2.0及以上 |
关于uni-app在Android平台云端打包证书的使用说明,以下是一个具体的代码案例及相关配置步骤,旨在帮助开发者顺利集成并使用证书进行打包。
准备工作
-
生成签名证书:
- 使用Android Studio或Keytool生成签名证书(
.keystore
文件)。 - 示例Keytool命令:
keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
- 根据提示填写必要信息,如密钥库密码、别名、组织信息等。
- 使用Android Studio或Keytool生成签名证书(
-
配置DCloud控制台:
- 登录DCloud开发者平台,进入“我的应用”。
- 选择目标应用,进入“管理”页面。
- 在“云打包配置”中,上传生成的
.keystore
文件,并填写密钥库密码、别名及别名密码。
uni-app项目配置
- 修改
manifest.json
:- 打开uni-app项目的
manifest.json
文件。 - 在“mp-weixin”或其他平台配置下,添加或修改Android平台配置,指定签名信息:
"mp-weixin": { // 其他配置... "app-plus": { "distribute": { "android": { "keystore": "path/to/your/my-release-key.keystore", // 本地路径(仅本地打包使用) "keystorePass": "your_keystore_password", "aliasName": "my-key-alias", "aliasPass": "your_alias_password" } } } }
- 注意:云端打包时,上述路径无需指定,只需确保DCloud控制台已正确配置。
- 打开uni-app项目的
云端打包
- 执行云端打包:
- 在HBuilderX中,右键点击项目,选择“发行” -> “网站-H5+App(云打包)”。
- 选择“Android App(云端一体)”。
- 确认配置无误后,点击“打包”按钮。
- 系统将使用您在DCloud控制台配置的证书进行打包,并生成APK文件。
注意事项
- 确保
.keystore
文件及密码等信息准确无误。 - 云端打包时,无需在
manifest.json
中指定keystore
的本地路径。 - 打包成功后,可在DCloud控制台下载生成的APK文件。
通过上述步骤,您可以成功地在uni-app项目中配置并使用Android平台的云端打包证书。如果在配置过程中遇到任何问题,请参考DCloud官方文档或联系技术支持获取帮助。