uni-app Android平台云端打包证书使用说明

发布于 1周前 作者 caililin 来自 Uni-App

uni-app Android平台云端打包证书使用说明

Android 应用签名证书指南

支持的证书类型

  • 使用自有证书

    • 开发者自己生成证书,正式发布应用时推荐使用此类型证书。
  • 使用云证书

    • DCloud云打包机自动生成证书,适用于开发证书。
  • 使用公共测试证书

    • 已下线。请勿使用。
  • 使用DCloud老版证书

    • 兼容老项目使用之前的DCloud证书时选择,此证书已废弃,请勿使用。

关于Android证书的用途

证书是一个开发者的身份标志,对Android系统而言。使用一个证书签发的App,是属于同一个开发者的App。

举个极端的例子,如果你的应用证书泄露,那么别人可以用这个证书签名一个仿冒App,假如包名和你的包名也一样,就可以覆盖安装安卓手机上你之前的包。

当前仅依赖证书校验是不完善的,所以主流的Android应用市场,通过实名认证开发者信息和著作权,强化了App的唯一性。也就是从主流应用市场点更新,不会发生冒充事件。但是通过其他方式安装apk,仍然会发生冒充的可能性。

如果签名不同,即使包名相同,也无法覆盖安装。此时安卓手机会在安装时报错,需要先卸载老的版本,才能安装新版。

证书安全说明

Android的应用安全管理模型,包括包名、证书、应用市场的账户。

包名是公开的,任何人都可以做一个apk包,包名和你的应用包名相同。那么如何防止仿冒包?

  1. 他人没有你的应用市场账户,就无法在市场发布仿冒包。
  2. 他人没有你的签名证书。不过这一点,现实中有很多问题,手机用户是没有识别能力的。大多数安卓手机上也无法查看应用的签名信息。

证书使用说明

使用自有证书打包发布

开发者如果已经有自己的安卓证书,可直接使用。如果没有,使用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及以上

1 回复

关于uni-app在Android平台云端打包证书的使用说明,以下是一个具体的代码案例及相关配置步骤,旨在帮助开发者顺利集成并使用证书进行打包。

准备工作

  1. 生成签名证书

    • 使用Android Studio或Keytool生成签名证书(.keystore文件)。
    • 示例Keytool命令:
      keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
      
    • 根据提示填写必要信息,如密钥库密码、别名、组织信息等。
  2. 配置DCloud控制台

    • 登录DCloud开发者平台,进入“我的应用”。
    • 选择目标应用,进入“管理”页面。
    • 在“云打包配置”中,上传生成的.keystore文件,并填写密钥库密码、别名及别名密码。

uni-app项目配置

  1. 修改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控制台已正确配置。

云端打包

  1. 执行云端打包
    • 在HBuilderX中,右键点击项目,选择“发行” -> “网站-H5+App(云打包)”。
    • 选择“Android App(云端一体)”。
    • 确认配置无误后,点击“打包”按钮。
    • 系统将使用您在DCloud控制台配置的证书进行打包,并生成APK文件。

注意事项

  • 确保.keystore文件及密码等信息准确无误。
  • 云端打包时,无需在manifest.json中指定keystore的本地路径。
  • 打包成功后,可在DCloud控制台下载生成的APK文件。

通过上述步骤,您可以成功地在uni-app项目中配置并使用Android平台的云端打包证书。如果在配置过程中遇到任何问题,请参考DCloud官方文档或联系技术支持获取帮助。

回到顶部