白话 uniapp 离线打包(Android)

使用 HBuilderX 前期可以很方便的开发调试功能模块,但到了打包这个步骤就犯愁;
作为学习或预研框架使用云打包,有次数和云打包等待耗时的情况
官网的离线打包文档,看着又有些不知所措
那么接下来,梳理一道 uniapp 离线打包思路,看能否顺利通关

前置环境条件

在开始前,请确保已安装

  • Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
  • HBuilderX

离线打包步骤概览

  • HBuilderX 生成本地打包app资源
  • uniapp 所须的离线SDK下载
  • AS(Android Studio) 导入 HBuilderX 生成本地打包app资源
  • AS 配置 build.gradle 文件
  • AS 配置 AndroidManifest.xml 文件

HBuilderX 相关

1、新建uniapp项目,此处项目名为 demo,使用的默认模板
新建项目 demo
2、选中demo项目,生成本地打包App资源
生成本地打包App资源
导出信息
3、新建一个文件夹,将导出的文件放入其中,以便后续操作
整理资源1

至此,HBuilderX 相关操作结束

uniapp 所须的离线SDK下载

1、根据 HBuilderX 的版本下载所须的离线SDK,如当前我的 HBuilderX 版本 是 2.7.14.20200618,须下载 2020年06月19日发布 的SDK
匹配版本
2.1、将下载解压后文件夹下 SDK ==> assets ==> data 目录拷贝至 上一步新建的demo-resource目录
拷贝data文件夹
2.2、修改 demo-resource ==> data文件夹里的 dcloud_control.xml文件,将appid修改为项目本身的appid
修改appid
3、将下载解压后文件夹下 SDK ==> libs 目录下
  • lib.5plus.base-release.aar
  • [email protected]
  • uniapp-release.aar
  • miit_mdid_1.0.10.aar
    四个文件拷贝至上一步新建的demo-resource目录
    拷贝所须SDK

至此,uniapp 所须的离线SDK下载相关操作结束

Android Studio 操作

1、新建 No Activity 项目
新建no activity 项目
android项目基本信息
2、调整视图,将默认的 Android 调整为 Project,方便目录游览操作
调整视图
3、修改项目根目录下的 build.gradle文件,将仓库地址修改为国内镜像,加快后续下载速度
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    
    repositories {
        //将
        google()
        //替换为
        maven { url 'https://maven.aliyun.com/repository/google' }
        
        //将
        jcenter()
        //替换为
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'
        

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        //将
        google()
        //替换为
        maven { url 'https://maven.aliyun.com/repository/google' }
        
        //将
        jcenter()
        //替换为
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

修改仓库镜像地址
4、app ==> src ==> main 目录下新增 assets 目录
5、app ==> src ==> main ==> assets 目录下新增 apps; 注意是 apps 不是 app
6、将之前生成本地打包app资源 放到 app ==> src ==> main ==> assets ==> apps 目录下; 可从之前我们保存的 demo-resource 临时文件夹里直接获取
7、将临时文件夹 demo-resource 里的 data 文件拷贝到 app ==> src ==> main ==> assets 目录下
8、将临时文件夹 demo-resource 里的 [email protected] lib.5plus.base-release.aar miit_mdid_1.0.10.aar uniapp-release.aar 四个文件拷贝至 app ==> libs 目录下
导入资源最终目录效果图
9、修改 app 目录下 build.gradle 文件
  • 9.1 修改 android 配置节点,在其下,新增配置节点
aaptOptions {  
  additionalParameters '--auto-add-overlay'  
  ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"  
}
  • 9.2 修改 dependencies配置节点,在其下,新增配置
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation "com.android.support:support-v4:28.0.0"
implementation "com.android.support:appcompat-v7:28.0.0"
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation "com.facebook.fresco:animated-gif:1.13.0"
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.alibaba:fastjson:1.1.46.android'

增加应用配置
10、修改 app ==> src ==> main ==> AndroidManifest.xml 文件,新增节点
  
      
          
          
      
  
  
      
          
          
          
          
      
  
AndroidManifest新增节点配置

至此,项目相关的配置已经结束。注意 如果涉及到权限(调用摄像头等),需要在AndroidManifest.xml中进行配置,文本未涉及。
接下来,我们走下程序,看是否能顺利跑起来,此处我用的是模拟器测试 (模拟器的设置里需要打开 允许ADB连接)

运行测试

离线打包

1、AS(Android Studio) 菜单栏选择 build ==> Generate Signed Bundle /APK

离线打包1

2、选择APK,点击next

离线打包2

3、打包需要签名,点击Create new

离线打包3

4、设置 jks文件名,及其保存位置(此处我保存的位置是在桌面)

离线打包4

5、填写密码和确定密码,因为是演示,我把密码设置为 123456。

下面First and Last Name为名字和姓氏
Organizational Unit为组织单位
Organization 为组织
City or Locality为城市或地区
State or Province为州或者省份
Country Code(XX)为国家
至少选填一种,这里我直接填上国家China。


离线打包5

6、回到签名界面,已默认填好,Next即可

离线打包6

7、选择 release后,同时勾选V1 V2,点击finish,完成打包

V1和V2的选择问题,V1属于旧的验证方式,V2是在安卓版本7.0之后新的验证方式,只勾选V1在Android7.0以上不会使用更安全的验证方式,如果只勾选V2那么安卓版本7.0以下的手机将无法正常安装,所以建议V1和V2同时勾选。

debug和release,一个是测试版一个是正式版,这里我直接选择release


离线打包7

8、安装打包好的apk,收获离线打包成功的喜悦

离线打包8
离线打包成功运行

至此,离线打包完结。

回顾总结

  • 请确保 HBuilderX 生成本地打包app资源中,manifest.json 文件里 appid 属性有值
  • 请确保 dcloud_control.xml 文件中 appidmanifest.jsonappid 一致
  • AS项目里 app ==> src ==> main ==> assets 目录下新增是 apps; 注意是 apps 不是 app
  • 本文暂时并未涉及权限调用,如有涉及需要配置 AndroidManifest.xml

搞定收工,希望你也顺利的完成了离线打包。

参考文档

1、官方文档
2、网友文献

你可能感兴趣的:(白话 uniapp 离线打包(Android))