一般用户只能反馈在做什么的时候发生crash 然后我们在去做尝试是否能遇到, 不过这样效率不高而且一般很难复现到用户的crash Bugly的出现解决的这个问题 Bugly SDK在当程序崩溃时, 会自动将错误信息发送到服务器方便开发人员查看分析 那么如何使用Bugly? 首先先到https://bugly.qq.com/v2/注册账号, 并注册app下载SDK包 将Bugly.framework拖拽到工程中, 记得勾选copy if needed. UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [Bugly startWithAppId:@"此处替换为你的AppId"]; return YES; } 这样当程序发生崩溃时, 崩溃信息会自动发送到服务器登录你的bugly账号就能查看到了
这里要注意一下,在app下配置build.gradle,这种方式在AS中是最高效的,不推荐配置libs方式集成sdk,如果想了解另外一种集成方式可参考官方文档:http://bugly.qq.com/androidfast demo demo例子已经上传到github: https://github.com/devilWwj/Android-Tech/tree/master/BuglyDemo 总结 bugly的整个集成过程还算比较简单 ,能帮助我们快速定位问题,并有详尽的信息输出,比我们以前自己捕捉异常然后再通过程序上传日志到服务器要高效得多,通过这样的第三方服务确实能帮助开发者们提升产品质量,本篇博客提供的demo只是初步的尝试,bugly
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
上一篇文章说道tinker的热更新,可是少了点补丁包的管理,这一篇文章介绍的bugly就是增强版的,更加方便你集成tinker和包括了补丁包的后台管理。 为什么使用 Bugly 热更新? 无需关注 Tinker 是如何合成补丁的 无需自己搭建补丁管理后台 无需考虑后台下发补丁策略的任何事情 无需考虑补丁下载合成的时机,处理后台下发的策略 我们提供了更加方便集成 Tinker 的方式 我们通过 HTTPS 及签名校验等机制保障补丁下发的安全性 丰富的下发维度控制,有效控制补丁影响范围 我们提供了应用升级一站式解决方案 Bugly下面我们用1.3.4版本的bugly来开发。 1.申请appid 去官网Bugly官网 申请appid比如asd778asd89,如果你之前应用bugly的异常上报就不用再申请appid。用的是同一个appid。 2.添加bugly插件 在项目的root目录下的build.gradle classpath "com.tencent.bugly:tinker-support:1.1.1" 在app/build.gralde
最近因项目需求,需要集成热更新功能。先前项目也集成过腾讯tinker,但是这功能是写到公司后台更新下发的,现在并不能满足需求,便想着使用bugly热更+异常上报。 于是我按照官方Bugly Android热更新使用指南去集成了,也按他的推荐在SDK初始化的时候使用了enableProxyApplication = false 的方式,然而却出现了异常了 ? bugly_error.png 经过多次试验,补丁打包时成功的并且下发也是ok的,但就如上dagger2在Application里初始化调用了null对象,其实观察发现,不仅仅是dagger2初始化失败
1 Jenkins是什么玩意 Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的 软件工具。官方网站:http://jenkins-ci.org/。 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图 表的形式形象地展示项目构建的趋势和稳定性。 E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据 我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程 中,干别的事情); JUnit/TestNG 测试报告:也就是用以图表等形式提供详细的测试报表功能; 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成; 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件, 哪一次集成构建使 用了哪个版本的jars文件等构建记录; 支持第三方插件:使得 Jenkins 变得越来越强大 2 Jenkins安装 1.
最近公司项目中需要集成热更新功能,由于刚开始接入的时候踩了很多坑,所以现在记录一下集成的过程. 集成过程参考了Bugly官方文档热更新使用指南 https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/? Bugly目前采用微信Tinker的开源方案,开发者只需要集成我们提供的SDK就可以实现自动下载补丁包、合成、并应用补丁的功能,提供了热更新管理后台让开发者对每个版本补丁进行管理。 Bugly热更新.当然在此之前也集成过原始的Tinker热更新,比这个的集成比较复杂,接入的时候微信Tinker还不支持加固,不满足公司的需求,过了一周后Tinker发布新版本,新版本支持加固,考虑到用原始的 Tinker集成后,需要后台的配置才能测试,这样感觉会浪费很多的时间,所以就用Bugly来集成,这样测试的时候,自己去Bugly后台配置就可以测试. --- 小编整理了一份Android电子书籍,需要的童鞋关注公众号回复
App项目使用Bugly的内测分发功能进行整包的测试,但日积月累之后,版本就会特别多。而线上同时跑的版本可能不过三个左右,那么多版本会干扰到查看崩溃、选择版本,如何隐藏呢? 可是bugly有bug,只能设置显示,不能设置隐藏 >_<,好几十个版本要一个一个去点击隐藏,好麻烦,所以就用Fiddler抓了一下包然后整了一个脚本。 APP_JSON_CONTENT_TYPE = 'application/json;charset=utf-8'; var REG_URL_PARAM = /\{(\w+)\}/ig; var basehttp = "https://<em>bugly</em>.qq.com /v2"; var baseUrl = "https://<em>bugly</em>.qq.com/v2"; var apiBaseUrl = "https://api.<em>bugly</em>.qq.com/<em>bugly</em>2.0/"
"message": "Receive response from cas when validating ticket, but request fa...
注意:如果只是与一个PMS集成,微服务就是大材小用了,但如果在大规模集成的情况下,微服务架构的好处就体现出来了。 但在此期间,你仍需了解目前所在的领域,以及将它们集成整合到一起的方法。运用整体单一式的应用在开发和部署时更简单,也更方便模拟预订服务,以及在客户资料的微服务版块内实现顾客资料模块的设计。 由于PMS_1的API与PMS_2的API不同,与PMS_1集成的预订服务其中的代码就和与PMS_2集成的预订服务代码不同。 假设源代码数据库只有一个,各个微服务也使用了持续集成工具,现在需要将代码部署到500个worker上,也就是与PMS_1集成的500个预订服务worker。 ➤语言与数据的分散控制 每个微服务都有自己的技术堆栈,因此我们可以运用技术异质性。 比如,需要改善特定组件的性能时,选择能够实现需要性能的技术堆栈即可。
NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds
可以看到我配置了两个external-path,这两个路径都是beta下载的文件可能存在的路径,举个例子,第一个路径存在的uri如下: content://com.bugly.upgrade.demo.fileProvider 例如:/data/data/com.bugly.upgrade.demo/files <cache-path name="name" path="path" /> 表示路径在应用中红内部存储区域中cache 例如:/data/data/com.bugly.upgrade.demo/cache <external-path name="name" path="path" /> 表示路径在外部存储区域根目录的子目录 例如: /storage/emulated/0/Android/data/com.bugly.upgrade.demo/cache 通过FileProvider获取Uri路径 示例代码: Uri uri
这个坑我踩了两天,然后加了 Bugly 内测分发交流群 ( QQ群 429975901 ) ,得到了答案,把 Tinker 的依赖版本降低 // 指定tinker依赖版本(注:应用升级1.3.5版本起, tinker-android-lib:1.9.9' Tinker的依赖库版本我之前一直是用最新的,设置为 latest.release ,哪里知道居然还是一个不稳定的版本,就这一个坑卡了两天,期间一直 Google、查 Bugly 文档,下载 Demo 比对,找不到问题,在这吐槽 Bugly 的坑货,不稳定的版本也发布。 集成期间还遇到点小问题,比如 FileProvider 冲突问题 <!
自Bugly上线以来,通过各位开发者的试用和口口相传,目前Bugly已经迎来了大批量的用户,在业内的反响只能用下图来形容: ? 体验过手动配置的开发哥哥肯定知道这是个多么麻烦的工作,为了解救大家于水火之中,Bugly新增了脚本自动配置符号表功能,抛弃复杂的配置符号表流程,自动化完成配置工作。 为此Bugly作为业内的一个颇具良心和情怀的工具类平台,特地新增了如下新功能: 1、优化崩溃堆栈中高亮关键堆栈行,助力高效定位 以前的一堆堆栈,没头没尾,找个关键信息要半天? string)主动上报自定义C#异常 添加方法BuglyAgent.ReportException (string, string, string)主动上报自定义错误 【小编有话说】 听说七夕将至,Bugly 腾讯Bugly 最专业的质量跟踪平台 精神哥、小萝莉,为您定期分享应用崩溃解决方案
本篇博客还是基于Gradle,但稍微进阶一下,将跟大家分享一下如何开发一个Gradle插件,这个插件是我为Bugly开发的自动上传apk文件的Gradle插件,目前已经开源,有兴趣的朋友可以到github ,在里面输入: implementation-class=com.tencent.bugly.plugin.BetaPlugin 这样就完成插件的配置了。 步骤4:接收外部参数 apply plugin: 'com.tencent.bugly.plugin.betauploader' // 应用上传apk插件 // beta配置 beta { appId 步骤5: 创建Task 我们最终要实现的是通过task能够将apk文件上传到bugly平台,代码实现如下: /** * 创建上传任务 * * @param variant project.beta.debugOn) { println("Bugly: the option debugOn is closed, if you want to
服务域名 BUGLY_DSYM_UPLOAD_DOMAIN="api.bugly.qq.com" # 注意jar工具的路径跟dSYMUpload.sh脚本路径一致, 请务必保证jar路径的正确性 BUGLY_SYMBOL_JAR_PATH ="$1" CONFIG_BUGLY_APP_KEY="$2" CONFIG_BUGLY_APP_BUNDLE_IDENTIFIER="$3" CONFIG_BUGLY_APP_VERSION $CONFIG_BUGLY_APP_KEY $CONFIG_BUGLY_APP_BUNDLE_IDENTIFIER $CONFIG_BUGLY_APP_VERSION $DSYM_SYMBOL_ZIP_FILE $CONFIG_BUGLY_APP_KEY $CONFIG_BUGLY_APP_BUNDLE_IDENTIFIER $CONFIG_BUGLY_APP_VERSION $DSYM_SYMBOL_ZIP_FILE App ID: ${BUGLY_APP_ID}" echo "Bugly App key: ${BUGLY_APP_KEY}" echo "Bugly App Version: ${BUGLY_APP_VERSION
made in 小蠢驴的crash.jpg ---- Bugly集成导入步骤 pod 'BuglyHotfix' (手动导入比较麻烦) import 'JPEngine.h' (该文件在JSPatch 文件夹中) 在appdelegate.m文件的 didFinishLaunchingWithOptions 方法中,对bugly进行初始化 JSPatch 文件夹要手动获取,要么去bugly官方说明文档下载 2.把如图所示的JSPatch文件拖入项目 didFinishLaunchingWithOptions 中的初始化bugly方法 { //初始化 Bugly 异常上报 BuglyConfig 3.png 如图,我们发现程序crash了,默认的bugly是会收集程序的crash信息的,我们登录bugly后台看看 ? 4.png 发现并没有手机到crash信息,难道我们设置错误了? 5.png 登录bugly后台,发现捕捉到了我们的程序crash,而且包括调用的方法,错误原因,都显示了出来。
也可以轻松实现与微信、钉钉等移动办公软件或第三方APP的集成。
没错,Bugly就是这样的一个平台,可以很方便快捷实现你这样的需求,能帮助到你提高开发效率,更加敏捷。本篇文章就跟大家分享如何使用Bugly进行错误堆栈还原。 集成Bugly 关于如何集成Bugly SDK这里不详细说明,可以到官网查看我们的SDK使用指南。 前面我也写过一篇文章快速集成Bugly Android SDK,可以参考下。 Bugly混淆配置 # 请避免混淆Bugly,在Proguard混淆文件中增加以下配置: -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly 线上还原 通过集成我们Bugly SDK,就能在线上监控你的app的崩溃情况,一有崩溃发生就会上报到平台,我们制造一个Crash,看它在Bugly平台的表现: ? 当然可以,Bugly早已帮你实现自动上传符号表的插件,详情的话看符号表配置。
前言 之前在分享的时候,都是分享一些app测试相关的,最近在研究崩溃相关的,在学习过程中,用到了bugly来收集,如何使用bugly呢,在app接入的过程中,总结了一些自己的踩过的坑。 正文 Bugly官网地址:https://bugly.qq.com/v2/index,使用qq登录后,可以创建出来对应的产品。 创建后,可以按照指南接入:https://bugly.qq.com/docs/user-guide/instruction-manual-android/? v=1.0.0 我的接入的步骤是: 首先在app的添加依赖 dependencies { implementation 'com.tencent.bugly:crashreport :latest.release' implementation 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release
通过快速连接和融合云上或云下自建的各种数据源,提供操作轻量化、过程可视化、能力开放化的数据集成工具
扫码关注腾讯云开发者
领取腾讯云代金券