Uniapp App离线打包流程(Android、IOS待续)

开发环境:
Visual Studio Code 版本:1.84.2 (非必需,可跳过)
HBuilder X 版本:3.96
Android Studio 版本: 2022.1.1
JDK 版本:11.0.1
Android SDK. 版本:34.0.0

Android 打包流程

官网打包流程:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android.html)
在这里插入图片描述

1)下载Android 离线SDK

温馨提示:网盘下载如龟速,如需要SDK可以加V benjamin19950304

2)申请Appkey

由于uniapp 3.1.10版本起需要申请Appkey,所以我们首先要注册一个 dcloud开发者平台 账号,申请应用,生成Appkey。
在这里插入图片描述

2.1)登录开发者后台找到=>应用管理=>我的应用

在这里插入图片描述

2.2)创建应用

在这里插入图片描述
应用类型:默认选择uni-app
其他参数按需填写
在这里插入图片描述

2.3)增加应用平台信息

创建完成之后会回到应用列表,可以看到刚才创建的应用信息。
在这里插入图片描述
点击刚才创建好的应用,可以看到应用的详细信息。
在这里插入图片描述
找到“各平台信息”标签,左右侧有个“新增”的按钮,创建我们对应应用的平台信息。
在这里插入图片描述
所属平台:选择Android App
版本 :如果是发布应用市场,肯定选正式版,其他看自己的需求定。
包名 :根据自己的应用定,例如:com.xxx.xxx
Android 应用签名SHA1值 和 Android 应用签名SHA256 :就是你创建的Android打包签名文件(后缀.jks或者.keystore文件)
在这里插入图片描述

2.4)应用签名获取

2.4.1)keytool -v -list -keystore 文件名称.jks

在这里插入图片描述
根据JDK版本不同,有用户反馈这种方式获取不到MD5值,如下图,别急,看第三种方式。
在这里插入图片描述

2.4.2)AS工具获取,Gradle->app->Tasks->android->signingReport

在这里插入图片描述

2.5)生成Appkey

在这里插入图片描述
点击创建按钮生成Appkey
在这里插入图片描述
到这Appkey就算搞定了,等待备用。

3)Android Studio创建Android项目

File=>New Project
在这里插入图片描述
直接创建一个空白的项目
在这里插入图片描述
填写项目名称和包名,直接FInish就可以了
在这里插入图片描述
创建完成,你将看到上面的目录结构,然后等待项目build完即可。

4)导入uniapp的离线SDK

解压官方的离线SDK,找到SDK文件夹的libs
在这里插入图片描述
找到对应的libs文件
lib.5plus.base-release.aar
android-gif-drawable-release@1.2.23.aar
uniapp-v8-release.aar
oaid_sdk_1.0.25.aar
breakpad-build-release.aar
拷贝到libs目录下
在这里插入图片描述
HBuilderX3.2.5版本之后适配了AndroidX。
AndroidX版本需添加如下资源
在这里插入图片描述

implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.facebook.fresco:fresco:2.5.0'
implementation "com.facebook.fresco:animated-gif:2.5.0"
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.alibaba:fastjson:1.2.83'
implementation 'androidx.webkit:webkit:1.3.0'
  aaptOptions {
        additionalParameters '--auto-add-overlay'
        ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
    }

点击右上角的Sync New按钮同步更新

在这里插入图片描述
找到项目的AndroidManifest.xml文件,把如下配置放到<application>节点下

 <activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|keyboard|navigation"
            android:hardwareAccelerated="true"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="user"
            android:theme="@style/TranslucentTheme"
            android:windowSoftInputMode="adjustResize"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="io.dcloud.PandoraEntryActivity"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize|uiMode"
            android:hardwareAccelerated="true"
            android:launchMode="singleTask"
            android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
            android:screenOrientation="user"
            android:theme="@style/DCloudTheme"
            android:windowSoftInputMode="adjustResize"
            android:exported="true">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <action android:name="android.intent.action.VIEW" />
                <data android:scheme=" " />
            </intent-filter>
        </activity>

        <meta-data
            android:name="dcloud_appkey"
            android:value="申请的Appkty" />

按照以上配置,并在meta-data节点下添加前面申请的Appkey即可。

5)生成app资源

如果你也是用Visual Studio Code开发的项目,那就按照完整步骤走,如果不是,直接跳到HBuilder X打包流程。

5.1)Visual Studio Code打包HBuilder X编译文件

在这里插入图片描述
如果你是yarn

yarn build:app

如果你是npm

npm run build:app

之后找到dist=>build=>app文件,这个就是我们需要的文件了。

5.2)HBuilder X导入项目

在这里插入图片描述
项目导入之后,我们配置一下manifest.json文件
在这里插入图片描述
应用标识,也就是AppID,在前面申请Appkey创建应用的时候就已经生成了
在这里插入图片描述
复制AppID到HBuilder X工程即可运行项目。

5.3)生成app打包资源

在这里插入图片描述
接下来会生成一个和我们AppID命名的文件夹
在这里插入图片描述
这个就是我们需要的app打包资源了。

6)导入uniapp工程下生成的app资源包

将我们在HBuilder X生成的app资源包,导入Android Studio工程
在这里插入图片描述
把SDK的assets文件夹复制到Android Studio工程app=>src=>main下面。
在这里插入图片描述
接着创建一个apps文件夹,存放HBuilder X生成app文件的。
在这里插入图片描述
修改dcloud_control.xml文件配置,也就是把我门的AppID放上去即可。
到这里其实你已经可以运行并打包apk文件了

7)打包APK文件

在这里插入图片描述
在这里插入图片描述
如果你是国内市场,选择APK就可以了,想要上Google Play就选择Android App Bundle然后点击Next
在这里插入图片描述
这里的打包签名文件就是前面创建Appkey生成的Android打包签名文件(后缀.jks或者.keystore文件)
在这里插入图片描述
填写完签名信息后,点击Next,选择release正式包Create即可
在这里插入图片描述
这个app-release.apk就是我们需要的文件了,可以提交到应用市场的文件。
需要特别注意的是,如果你上传Google Play的应用市场,Google Pla会对你的apk文件进行二次签名,所以也会导致你的应用提示Appkey失败的类似问题,所以需要在Google Play后台找到签名文件的SHA1和SHA256重新生成新的Appkey,然后再打包aab文件提交即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/200747.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1-2、计算机组成

语雀原文链接 文章目录 1、计算机组成1-1、主板1-2、接口卡1-3、存储器&#xff08;内存&#xff09; 2、存储器2-1、存储器的重要性2-2、物理存储器2-3、逻辑存储器2-4、内存地址空间的分段2-5、存储单元2-6、指令和数据 3、总线3-1、三类总线3-2、CPU读数据例子3-3、CPU写数…

Codeforces Round 907 (Div. 2) (C 贪心 D套路? F dfs序+差分树状数组)

A&#xff1a; 这种操作题&#xff0c;每次先想这个操作有什么性质 对于2^0来说可以操作 第1位 对于2^1来说可以操作 第1-2位 对于2^2来说可以操作 第1-4位 &#xff08;第3位无法单独修改&#xff09; 对于2^3来说可以操作 第1-8位&#xff08;第5 6 7位无法单独修改&…

Revit导出3D模型插件【GLTF|OBJ|DAE|STL|PLY|OFF|XYZ】

3dconvert_for_revit插件是NSDT 3DConvert工具集中的一种&#xff0c;可以快速将Revit模型导出为8种目标格式&#xff1a;GLTF、OBJ、GLB、DAE、STL、OFF、XYZ和PLY。 用户在进行格式转换之前&#xff0c;需要先下载安装对应Revit版本的插件。 NSDT在线工具推荐&#xff1a; T…

关于免费SSL证书

JoySSL是一家提供免费SSL证书的服务商&#xff0c;它的免费SSL证书不仅包括单域名&#xff0c;还包括多域名和通配符的免费证书。这意味着&#xff0c;无论您是只有一个网站的个人用户&#xff0c;还是拥有多个子域名的企业用户&#xff0c;都可以在JoySSL找到适合您的免费SSL证…

Golang中rune和Byte,字符和字符串有什么不一样

Rune和Byte&#xff0c;字符和字符串有什么不一样 String Go语言中&#xff0c; string 就是只读的采用 utf8 编码的字节切片(slice) 因此用 len 函数获取到的长度并不是字符个数&#xff0c;而是字节个数。 for循环遍历输出的也是各个字节。 Rune rune 是 int32 …

医疗机构临床数据合规共享解决方案斩获“金智奖”年度优秀方案奖

11月24日&#xff0c;以“并肩聚力&#xff0c;协同创新&#xff0c;共谋网络安全产业新发展”为主题的2022—2023年度中国网络安全与信息产业“金智奖”&#xff08;以下简称&#xff1a;“金智奖”&#xff09;颁奖盛典隆重举行。美创科技—医疗机构临床数据合规共享解决方案…

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion (Paper reading) Yitong Jiang, The Chinese University of Hong Kong, arXiv23, Code, Paper 1. 前言 我们提出了一种具有潜在扩散的一体化图像恢复系统&#xff0c;名为AutoDIR&#xff0c;它可以…

MyBatis使用教程详解<下>

回顾上一篇博文,我们讲了如何使用注解/XML的方式来操作数据库,实际上,一个Mapper接口的实现,这两种方式是可以并存的. 上一篇博文中,我们演示的都是比较简单的SQL语句,没有设计到复杂的逻辑,本篇博文会讲解复杂SQL的实现及一些细节处理.话不多说,让我们开始吧. 一. #{}和${} …

【Qt之QSqlRelationalTableModel】描述及使用

描述 QSqlRelationalTableModel类为单个数据库表提供了一个可编辑的数据模型&#xff0c;并支持外键。 QSqlRelationalTableModel的行为类似于QSqlTableModel&#xff0c;但允许将列设置为其他数据库表的外键。 左边的屏幕截图显示了QTableView中一个普通的QSqlTableModel。外…

哈希思想应用【C++】(位图,布隆过滤器,海量数据处理面试题)

目录 一&#xff0c;位图 1. 位图概念 2.实现 3. 测试题 位图的优缺点 二&#xff0c;布隆过滤器 1). 布隆过滤器提出 2). 概念 3). 布隆过滤器的查找 4). 布隆过滤器删除(了解) 5). 布隆过滤器优点 6). 布隆过滤器缺陷 三&#xff0c;海量数据面试题 1&#xff…

C语言你爱我么?(ZZULIOJ 1205:你爱我么?)

题目描述 LCY买个n束花准备送给她暗恋的女生&#xff0c;但是他不知道这个女生是否喜欢他。这时候一个算命先生告诉他让他查花瓣数&#xff0c;第一个花瓣表示"爱"&#xff0c;第二个花瓣表示"不爱"&#xff0c;第三个花瓣表示"爱"..... 为了使最…

【Openstack Train安装】七、glance安装

Glance是为虚拟机的创建提供镜像的服务&#xff0c;我们基于Openstack是构建基本的IaaS平台对外提供虚拟机&#xff0c;而虚拟机在创建时必须为选择需要安装的操作系统&#xff0c;Glance服务就是为该选择提供不同的操作系统镜像。Glance提供Restful API可以查询虚拟机镜像的me…

计算机网络(超详解!) 第二节 物理层(上)

1.物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒体。 物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。 用于物理层的协议也常称为物理层规程(procedure)。 2.物理层的主要任务 主要…

Linux处理文本常见命令

目录 1 vim 2 echo 3 tee 4 cat 1 vim 编辑文本类的内容&#xff0c;使用的时候 vim [文件名]&#xff0c;比如 vim A.txt 进入vim界面后&#xff0c;按i可以开启编辑模式&#xff0c;按ESC可以关闭编辑模式&#xff0c;关闭编辑模式后:wq!保存并退出 2 echo ech…

PHP:处理数据库查询数据

注&#xff1a; DB_num_rows($result5)可以替换为mysqli_num_rows($result5) DB_fetch_array($result5)可以替换为mysqli_fetch_assoc($result5) 一、查询单个数据 代码解析 1、SQL语句 查询表www_users中当userid等于变量$_SESSION[UserID]时的depart_code值 $sql &qu…

【JavaEE初阶】 HTTP 请求 (Request)详解

文章目录 &#x1f340;序言&#x1f384;认识URL&#x1f6a9;URL 基本格式&#x1f6a9;query string&#x1f6a9;关于 URL encode &#x1f334;认识 "方法" (method)&#x1f6a9;GET方法&#x1f6a9;POST 方法&#x1f6a9; GET 和 POST 的区别 &#x1f38b;…

7 种 JVM 垃圾收集器详解

一、概述 如果说收集算法是内存回收的方法论&#xff0c;那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定&#xff0c;因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别&#xff0c;并且一般都会提供参数供用…

如何利用软文打动消费者,媒介盒子支招

软文与一般文案的差别就在于它的目的性十分强烈&#xff0c;写软文不难&#xff0c;但是想要写出打动消费者的软文还需要一定的技巧。它需要根据目标受众来输出&#xff0c;接下来媒介盒子就为大家分享&#xff1a;如何用软文提升产品购买率。 一、 故事打动用户 没人会不爱看…

接口测试【加密解密攻防完整版】实战教程详解

一、对称加密 对称加密算法是共享密钥加密算法&#xff0c;在加密解密过程中&#xff0c;使用的密钥只有一个。发送和接收双方事先都知道加密的密钥&#xff0c;均使用这个密钥对数据进行加密和解密。 数据加密&#xff1a;在对称加密算法中&#xff0c;数据发送方将明文 (原…

1 NLP分类之:FastText

0 数据 https://download.csdn.net/download/qq_28611929/88580520?spm1001.2014.3001.5503 数据集合&#xff1a;0 NLP: 数据获取与EDA-CSDN博客 词嵌入向量文件&#xff1a; embedding_SougouNews.npz 词典文件&#xff1a;vocab.pkl 1 模型 基于fastText做词向量嵌入…