Uniapp离线打包集成蒲公英SDK

2022-11-06  本文已影响0人  阿毛呀_

1:前提

在项目开发过程中,或者是特殊场景下。为了便于内测项目的分发,我们大多会选择一些托管平台。我使用的是蒲公英平台,所以本文描述的是关于uniapp通过离线打包的形式在Android端集成蒲公英的一些注意点与操作步骤。如果有需要了解iOS端的,可以留言,抽时间再补上。

2:uniapp离线打包

a:在Dcloud创建应用
应用列表.jpg
b:配置参数生成对应的离线打包key
配置信息.jpg
生成key值.jpg
c:下载最新的离线打包基座

Android离线打包指南
版本不一致问题提示

弹窗提醒样式.jpg
为了避免打包完成后弹窗提醒版本不一致问题,可以在对应项目里面的manifest.json文件里面加入ignoreVersion的代码
"compatible" : {
  "ignoreVersion" : true
},
忽略版本配置.jpg
d:按照离线打包的指引配置完成

想要自己跟着文章配置的也行,我偷懒是直接在资源包的项目HBuilder-Integrate-AS示例里面操作的。为了怕玩坏项目我一般会压缩一个原始示例的版本。


目录.jpg

步骤如下:
1:build.gradle 修改versionCode / versionName
2:assets/data/dcloud_control.xml 修改appId
3:assets/apps/__uni__xxxxxxx ,修改对应的导入文件
4:manifests/AndroidManifest.xml 修改对应dcloud_appkey 对应的value值。
最后打包生成对应apk,有什么问题都能百度找到解决办法。这里主要讲怎么集成蒲公英的SDK。

3:Android集成蒲公英SDK

蒲公英的更新原理就不过多介绍了,想了解的可以自行百度。值得注意的是versionCode这个值。本人安卓原生知识接近于0,所有前面有百度过很多。主要参考过这篇Android App通过蒲公英实现更新,感谢作者的分享。
简单说下基本步骤(注意区分不同的build.gradle)

maven { url "https://raw.githubusercontent.com/Pgyer/mvn_repo_pgyer/master" }
build.gradle.jpg
implementation 'com.pgyersdk:sdk:3.0.10'
依赖build.jpg
   <!-- 必选-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取网络状态 -->
    <uses-permission android:name="android.permission.INTERNET" /> <!-- 网络通信-->
    <!-- 用户手机设置中允许未知来源安装包安装状态为关;-->
    <!-- Android8.0 以后,如果要安装 apk 需要额外添加权限:-->
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

以上步骤是按照文章Android App通过蒲公英实现更新完成的。下面讲到的这些就是离线打包的注意点了。

这里红线框起来的地方就是离线打包集成蒲公英的重点部分了,因为uniapp里面已经自带了一个Application、一个Activity。所以我们需要导入对应头文件,然后继承它,不然这两个文件里写的方法都不会生效。但是继承后又会有报merged manifest的错。这时候又需要进行下面的操作了

4:继承io.dcloud.application.DCloudApplication的问题

参考:dcloud进行android离线打包 需要继承io.dcloud.application.DCloudApplication的问题
我们将写好的application继承自 DCloudApplication,但是仅仅这样是会报错的merged manifest。需要我们在AndroidManifest文件中加入:

xmlns:tools="http://schemas.android.com/tools"
标签.jpg application节点下将name修改为我们自定义的 同时加入 tools:replace="android:name" application节点.jpg 节点里面的name写成我们自己新建的application文件名, Activity也要写我们自己新建的那个MainActivity。这样就完成了蒲公英的集成,实现新版本更新提示了。

在这个过程中自己走了很多弯路。然后因为安卓原生知识的匮乏,进展很缓慢,自己也很痛苦。当然,完成以后也是很开心的。所以总结一下流程,希望能帮到大家。至于uniapp集成其他的原生SDK应该跟这个也差不多了。
记得点个赞,鼓励一下。谢谢!

上一篇下一篇

猜你喜欢

热点阅读