用 Android Studio 打包 uni-app 的安卓apk;手把手教程、巨详细避坑

Uni-app 离线打包 apk

1. Android Studio 下载

2. HBuilderX下载

3. App离线SDK下载

  • Android 离线SDK - 正式版

  • 下载后解压文件,将 HBuilder-Integrate-AS 重命名 build-template 并拷贝到一个专门打包用的文件夹下作为打包模板

  • 该文件夹中有一个 simpleDemo 文件夹

    • build-templatesimpleDemosrcmainassetsapps

    • 将 apps 文件夹下的内容删除

    • 运行 HbuilderX

      image-20230513191744199

    • 选择生成本地打包 APP 资源

    • 打包完成控制台会提示下面内容

      image-20230513191907918

    • 找到打包后的资源目录,将下图文件夹复制到专门打包用的文件夹下,即 build-templatesimpleDemosrcmainassetsapps 文件夹下

      image-20230513192108596

4. 申请 Appkey

  • 安装JRE环境(推荐使用JRE8环境,如已有可跳过)

    • 可从Oracle官方下载jre安装包:

    • 建议将JRE安装路径添加到系统环境变量

      image-20230513192813810

    • 使用keytool -genkey命令生成证书:

      • cmd 输入以下命令 切换到 D 盘

        d:  
        
        keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
        
        • testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
        • test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
        • 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
      • 回车后会提示:

        Enter keystore password:  //输入证书文件密码,输入完成回车  
        Re-enter new password:   //再次输入证书文件密码,输入完成回车  
        What is your first and last name?  
          [Unknown]:  //输入名字和姓氏,输入完成回车  
        What is the name of your organizational unit?  
          [Unknown]:  //输入组织单位名称,输入完成回车  
        What is the name of your organization?  
          [Unknown]:  //输入组织名称,输入完成回车  
        What is the name of your City or Locality?  
          [Unknown]:  //输入城市或区域名称,输入完成回车  
        What is the name of your State or Province?  
          [Unknown]:  //输入省/市/自治区名称,输入完成回车  
        What is the two-letter country code for this unit?  
          [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
        Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
          [no]:  //确认上面输入的内容是否正确,输入y,回车  
        
        Enter key password for <testalias>  
                (RETURN if same as keystore password):  //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以
        
      • 以上命令运行完成后就会生成证书,路径为“D:test.keystore”

    • 查看证书信息

      在 D 盘下运行 cmd

      keytool -list -v -keystore test.keystore  
      Enter keystore password: //输入密码,回车
      

      会输出以下格式信息:

      image-20230513193504383

      只有 SHA1 和 SHA256,但是还需要一个 MD5

    • 此时需要下载一个 openssl 软件,并将其加入到环境变量

      image-20230513193644829

      • 安装完成后执行下面命令即可看到输出的 md5

        keytool -exportcert -keystore xxx.keystore | openssl dgst -md5
        
  • 记录上面生成的 SHA1 SHA256 MD5

    • image-20230513220140352
  • 登录 开发者中心

  • 在应用管理 - 点击应用 - 各平台信息 创建以及查看离线AppKey:

    • 创建时输入对应的 SHA1 SHA256 MD5

5. 配置 Android Studio

  • build.gradle配置

    signingConfigs {
            config {
                keyAlias '签名别名'
                keyPassword '签名密码'
                storeFile file('xxx/xxx/xxx.keystore或xxx/xxx/xxx.jks') // 路劲为相对路径或绝对路径
                storePassword '证书文件密码'
                v1SigningEnabled true //兼容v1
                v2SigningEnabled true //兼容v2
            }
    }
    
    buildTypes {
            debug {
                signingConfig signingConfigs.config
                ...
            }
            release {
                signingConfig signingConfigs.config
                ...
            }
    }
    
  • 注意:签名信息需要与后台一致,不一致也会导致appkey校验失败

    • 签名别名 即使用 keytool 工具生成证书时候要求输入的 alias 即上面的 testalias
    • 证书签名密码即使用 keytool 工具生成证书时候要求输入的证书密码
    • 证书文件密码 即使用 keytool 工具生成证书时候要求输入的证书文件密码(那个步骤按 enter 则证书密码和证书文件密码相同)
    • storeFile 即生成的 keystore 文件的位置
  • Androidmanifest.xml配置

    • 获取到android平台的AppKey后!打开Android项目 配置主APP的Androidmanifest.xml文件,找到meta-data节点,name为dcloud_appkey,value为申请的AppKey如下:

      	<application
              ...>
              <meta-data
                  android:name="dcloud_appkey"
                  android:value="替换为自己申请的Appkey" />
      
    • 找到 assets 目录下的 data 目录

      • 将 dcloud_control.xml 中的 appid 设置成申请AppKey时的 appid
        在这里插入图片描述
      • 将 build.gradle 中的 applicationId 设置成申请AppKey时的包名
        在这里插入图片描述
  • 设置应用名称

    • 编辑 res 目录下的 values 目录中的 strings.xml

      image-20230513223538252

    • 设置成应用的名字

  • 设置图标

    • res 目录中的 drawable 目录中
      • icon.png : logo图片
      • push.png : 消息推送logo
      • splash.png : 启动页
  • 设置版本号

    image-20230513232600631

6. 打包

image-20230513232631326

image-20230513232650940

image-20230513232738940

image-20230513232802788

打包完成后即可在 build-templatesimpleDemorelease 中查看打包好的 apk 文件

全文结束

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>