介绍
介绍
福哥要给tfhomeapp增加版本更新和应用升级功能,本来想自己手揉一个,后来查询网上很多人都是用的bugly这个企鹅国提供的三方工具实现的,最后福哥决定也加入企鹅国的阵营。
下面福哥就把接入bugly的方法整理出来,大家可以学习一下。
登录官网
bugly的官网地址是
看见qq.com就知道是企鹅国的东西了,既然是企鹅国的应该相对比较靠谱了。
注意:域名一定是bugly.qq.com才是正确的官网地址!
实名认证
这里面就是要做一下手机号的验证操作。
创建产品
填写产品基本信息
因为福哥做的是Android版本的软件,所以选择“Android”和“软件”,剩下还有软件的描述和软件的图标,全都弄好了就可以点击保存了。
创建成功了
创建成功了,下面给出了三个服务的链接,福哥要做的是版本更新和应用升级,自然选择“版本升级”了
安装SDK包
导入sdk
在APP项目的依赖里面添加如下库包,点击“Sync Now”加载bugly库包。库包的版本最好使用福哥给的版本,其他版本不保证可以正常使用。
implementation 'com.tencent.bugly:crashreport_upgrade:1.4.5' implementation 'com.tencent.bugly:nativecrashreport:3.7.500'
设置ndk
在android.defaultConfig里(就是versionCode同级位置)增加如下设置
ndk { abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a' }
配置
权限
设置如下权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
Activity
在Application下面加入升级框的Activity节点设置
<activity android:name="com.tencent.bugly.beta.ui.BetaActivity" android:configChanges="keyboardHidden|orientation|screenSize|locale" android:theme="@android:style/Theme.Translucent" />
FileProvider
在Application下面增加FileProvider的设置。
<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider>
如果已经存在了FileProvider设置,就采用继承方式设置。
<provider android:name=".utils.BuglyFileProvider" android:authorities="${applicationId}.fileProvider" android:exported="false" android:grantUriPermissions="true" tools:replace="name,authorities,exported,grantUriPermissions"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" tools:replace="name,resource"/> </provider>
provider_paths
在资源res目录下建立xml子目录,在xml子目录下面建立provider_paths.xml配置文件,写入如下内容。
<?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <!-- /storage/emulated/0/Download/${applicationId}/.beta/apk--> <external-path name="beta_external_path" path="Download/"/> <!--/storage/emulated/0/Android/data/${applicationId}/files/apk/--> <external-path name="beta_external_files_path" path="Android/data/"/> </paths>
混淆设置
为了避免SDK代码被混淆,需要在proguard-rules.pro文件里面增加如下设置。
-dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} -keep class android.support.**{*;}
初始化
根据官方文档的说法,在Application里增加一句话就可以了。
进入产品列表
鼠标放到右上角的头像,点击菜单里的“我的产品”进入产品列表页面。
进入产品设置
鼠标放到指定的产品的“操作”一栏可以看到一些链接,点击“设置”链接进入产品设置页面。
初始化配置
在产品信息栏里可以看到App ID和App Key信息,使用这个App ID组织以下代码放到启动Activity的onCreate方法里面,福哥就放到MainPage主页面了。
Bugly.init(getApplicationContext(), "7806c297c6", false);
测试
进入应用版本管理
在产品的设置界面,点击“应用升级”按钮进入应用的版本管理界面。
上传新版本
点击“发布新升级”上传安装包。
将新版本安装包上传到bugly服务器上
设置升级策略
上传后会自动弹出升级策略,这里面主要就是三个地方需要改一下:1)策略名称;2)提示框标题;3)提示框说明。
启动策略
点击策略操作栏里的“启动”按钮启动这个升级策略,用户启动APP后就会收到升级提示了。
常见问题
福哥整理了一系列的问题,避免大家再次踩坑,请仔细看下面的列表。
导入的包的版本是有兼容问题的,最好使用教程里写的版本。
旧版本的语法Bugly.init,而新版本的语法是CrashReport.init,教程里用的是旧版本,新版本福哥没有调试出来过。
升级检查只看versionCode,一定要确保发布的新版本的versionCode比当前用户安装的数字更大。
做过签名的apk安装包无法覆盖未做个签名的apk安装包,反过来也不行。这个一定要注意,因为通过Android Studio安装到手机上的是没有做个签名的APP程序。
总结
今天福哥花了一天的时间折腾这个Bugly的APP应用的版本更新和升级的功能,大家如果有同样的需求可以参考教程操作,基本上不会有问题的。