美文网首页
Uniapp离线打包集成蒲公英SDK

Uniapp离线打包集成蒲公英SDK

作者: 阿毛呀_ | 来源:发表于2022-11-06 15:37 被阅读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
    • 在AndroidManifest.xml文件中添加所需的权限
       <!-- 必选-->
        <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" /> 
    
    • 在uniapp离线打包文档下载的HBuilder-Integrate-AS示例项目里面,Java文件夹应该是空的。这时候,我们就要自己在里面新建我们需要的文件了。我是按照包名的路径新建了一个MainActivity、一个myApplication文件。 项目目录_.jpg

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

    • 在新建的application文件里面,导入蒲公英需要的头文件,然后完成对应的注册配置代码 applicaiton.jpg
    • 在新建的Activity文件里面导入蒲公英所需的头文件,然后如果不需要自定义版本更新提醒的样式,可以直接用默认的。 Activity.jpg

    这里红线框起来的地方就是离线打包集成蒲公英的重点部分了,因为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应该跟这个也差不多了。
    记得点个赞,鼓励一下。谢谢!

    相关文章

      网友评论

          本文标题:Uniapp离线打包集成蒲公英SDK

          本文链接:https://www.haomeiwen.com/subject/gaubtdtx.html