- 博客(207)
- 资源 (2)
- 收藏
- 关注
原创 iOS获取当前项目的所有类
获取当前工程下自己创建的所有类(不包含系统类,CocosPods类)获取当前工程下的所有类(包含系统类,CocosPods类)
2023-03-21 10:27:29
441
原创 SmartChat技术服务支持
ChatGPT是一项革命性的技术,本应用利用该先进的人工智能技术为用户进行聊天和创作,帮助用户轻松愉快的解决生活或者工作中的问题,为用户带来全新不一样的人工智能体验
2023-02-10 18:39:45
2904
2
原创 Manifest merger failed with multiple errors, see logs问题解决
今天在接入一个Android SDK的时候,报了一个Manifest merger failed with multiple errors, see logs问题,google了一下,这个问题在引入第三方SDK的时候经常会出现,其实就是依赖冲突。在错误的上面即可看到具体的错误信息,如下所示说明是com.tencent.mid冲突了,exclude即可...
2021-11-04 20:58:58
1477
原创 获取Cocos图片
最近在做录制回放的项目,录制回放中的校验是可以通过图片比对进行校验,所以需要获取Cocos中的图片完成接入和适配。参考了网上大多数文章,主要是通过截图方案实现的,代码如下所示:var canvas = document.createElement("canvas");var ctx = canvas.getContext('2d');var img = new Image;img.crossOrigin = 'Anonymous';img.src = url;canvas.height = im
2021-11-01 15:03:53
510
原创 IOS工程Flutter白屏
今天编译IOS工程的时候,Flutter页面白屏,经过多方定位无果,在启动日志里面看到Can’t load Kernel binary: Invalid kernel binary format version.如下错误,通过文章Can’t load Kernel binary: Invalid kernel binary format version.解决重新配置Flutter环境即可参考文章1、https://flutter.dev/docs/development/tools/sdk/rel
2021-09-30 11:02:08
642
原创 Flutter集成到ios项目中
现在Flutter项目集成到IOS项目中,有两种方式,一种是通过frameworkrk,另一种是通过cocospod后续完善参考文章https://flutter.cn/docs/development/add-to-app/ios/project-setup
2021-09-29 10:08:22
131
原创 Flutter事件分发和坐标获取
Flutter事件分发可以使用RendererBinding.instance.hitTest(hitTestResult, position);,获取整个响应的控件列表,根据文章Flutter完整开发实战详解(十三、全面深入触摸和滑动原理),在这个控件列表里,最底下的 Child 在最上面。hitTest 方法主要为了得到一个 HitTestResult ,这个 HitTestResult 内有一个 List 是用于分发和竞争事件的,而每个 HitTestEntry.target 都会存储每个控件的 R
2021-09-21 21:39:09
413
原创 Dart中的异步支持
与 JavaScript 一样, Dart 是基于 事件循环机制 的 单线程模型, 所以 Dart 中没有多线程, 也就没有主线程与子线程之分.后续补充参考文章:1、https://www.jianshu.com/p/cfcc6a0dac6a2、https://fullstackaction.com/pages/0fcdc8/#_1%E3%80%81%E5%90%8C%E6%AD%A5%E4%B8%8E%E5%BC%82%E6%AD%A5...
2021-09-21 09:09:20
105
原创 Cocoapods打包SDK
工程代码改造成CocosPod以后,以前在源代码工程中将代码打成SDK的脚本已经不能适用了,现在需要基于CocosPod打包成SDK输出给其他人。Cocoapods实现私有库开发和二进制发布原来CocosPod工程pod下来的源码是可以直接通过脚本进行编译核心编译SDK语句如下xcodebuild -project ${PROJECT} -target "${TARGET}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphon
2021-07-07 17:52:37
192
原创 Android ADB常用命令
1、获取包名和Activity名字adb shell dumpsys window windows | grep mCurrentFocus也可以使用adb shell dumpsys activity top | grep ACTIVITY
2020-12-18 17:16:43
183
1
原创 IOS 13之后适配自定义window显示
今天在接入一个业务的时候,发现自定义的window不显示了,主要是因为ios13以后苹果增加了SceneDelegate进行管理窗口。以前的时候如果想要显示一个window,使用如下代码就行了window = [[NewMonkeyWindow alloc] initWithFrame:CGRectMake(0, 0, windowWidth, windowWidth)];window.hidden = false但是现在因为使用SceneDelegate管理window,必须将window注册到
2020-12-09 17:34:48
1112
原创 Genymotion Android 模拟器运行arm程序
最近在搞SDK自动化,交付过来的自动化只支持arm架构,Android自动的x86模拟器无法使用,使用Android自带的arm模拟器启动发现很慢,无法使用。只能使用第三方模拟器,搜索发现Genymotion是比较好用的一款模拟器。1、下载Genymotion模拟器首先是下载Genymotion模拟器,直接去官网根据自己的操作系统下载即可,https://www.genymotion.com/,下载安装后,如下图所示:2、安装Genymotion-ARM-TranslationGenymotion
2020-09-23 17:17:26
3211
原创 Android中获取指定包名下的所有类
准备开发一个测试框架,其中有一个问题是加载所有测试用例,需要利用java的反射机制加载继承了某个接口的测试用例,网上找了一圈,发现dexfile可以使用,代码如下所示 public static List<String > getAllClassName(){ List<String >classNameList=new ArrayList<String >(); try { DexFile df = new
2020-09-13 23:04:35
2165
原创 The style on this component requires your app theme to be Theme解决
今天要在Android端实现一个Navigation导航栏,代码需要通过LayoutInflater.from对BottomNavigationView进行初始化,但是总是报下面的错误,看了一下错误堆栈报了The style on this component requires your app theme to be Theme.AppCompat (or a descendant)这个错误 ┌─────────────────────────────────────────────────────
2020-08-17 21:13:33
1160
原创 Xcode输出: Message from debugger: Terminated due to signal 9
参考文章:1、https://my.oschina.net/u/2470593/blog/709608
2020-08-10 11:02:30
2088
原创 Android Studio引入Kotlin插件
Kotlin问世于2011年,直到近两年被JetBrains,Google等公司扶持下,才被逐渐重视起来。尤其是2017年5月份谷歌宣布把Kotlin作为Android的官方开发语言,紧接着10月份Android Studio3.0正式集成了Kotlin开发环境,11月份更完善的Kotlin1.2版正式发布。本文将介绍如何在Android Studio引入Kotlin。一、查看Kotlin版本打开Android Studio,选择 Android Studio ->Preferences->
2020-08-04 11:26:04
3242
原创 Android Studio开发SDK
Android Studio开发SDK过程很简单。File->New->NewModel,选择Android Library 就可以了参考文章1、https://blog.csdn.net/yushuangping/article/details/802504492、https://www.jianshu.com/p/c203f6afc06a
2020-07-31 11:36:03
204
原创 Android Studio报Could not GET xxx解决办法
今天在打开一个Android项目以后,sync gradle的过程中总是报Could not Get ‘https://mirrors.tencent.com/repository/maven/thirdparty-snapshots/com/android/tools/build/gradle/3.5.0/gradle-3.5.0.pom’ Enable Gradle ‘offline mode’ and sync projecturl打开这个链接https://mirrors.tencent.co
2020-07-21 14:37:29
3068
原创 ios xcode11单元测试实践
最近在做iOS的变异测试,有一部分是需要根据覆盖率精准推荐单测用例,其中设计到ios的单测,今天我们就聊聊 iOS的单测1、查看xcodebuild命令man xcodebuild即可查看xcodebuild所支持的选项2、xcodebuild完整的单元测试命令xcodebuild test -workspace 'xxx.xcworkspace' -scheme xxx -destination 'platform=iOS simulator,id=82D4328F-F862-4BC5-A3B2-
2020-06-14 21:46:15
1075
原创 go单元测试实践
最近在做go的单元测试,简单的梳理一下知识点1、框架选型goconvey+gomonkey应该是最好的组合方案,goconvey是作为外层框架,gomonkey可以为函数、方法等进行打桩。2、go monkey项目地址:https://github.com/agiledragon/gomonkeygomonkey 是 golang 的一款打桩框架,目标是让用户在单元测试中低成本的完成打桩,从而将精力聚焦于业务功能的开发。gomonkey 接口友好,功能强大,目前已被很多项目使用,用户遍及世界多个国
2020-06-02 20:17:01
928
原创 iOS LLDB调试
调试是开发程序的利器,在开发的过程中,掌握好的调试方法可以节省大量的时间,本文简单介绍一下iOS的LLDB调试expression命令在程序的运行过程中想要改变某个变量的值来改变程序的行为,express命令再适合不过了如上图所示,number本身传入的是11 ,但是通过expression命令expression number = 9将number赋值为9,达到改变程序的目的run命令调试的时候经常需要重新启动程序。但是如果重新Run程序,需要重新编译,非常浪费时间。可以在 lldb 中输入r
2020-05-27 19:46:35
262
原创 ios arm64汇编调试
最近在看 ios 的 inline hook,免不了需要了解一下 arm64 汇编的知识,以及如何通过xcode去查看和调试汇编代码。1、如果通过XCode查看汇编代码在调用处添加断点,然后依次选择Xcode菜单中的 Debug->Debug Workflow->Always Show Disassembly命令后,就直接以汇编代码呈现了:2、如何通过Xcode查看核心寄存器变...
2020-04-29 17:21:00
1003
原创 IOS出现Initializer element is not a compile-time constant 解决办法
今天在写hook代码的时候,出现了Initializer element is not a compile-time constant 这个错误,如下图所示:通过将 该文件的后缀 .m 改成 .mm 即可
2020-03-14 22:41:13
3285
原创 VNCoreMLModel 初始化报 [NSURL initFileURLWithPath:]: nil string parameter
参考这篇文章 http://www.demodashi.com/demo/11715.html主要是因为 VNCoreMLModel init 的时候 model文件没有找到,如下代码所示: MyCustomImageClassifier *model = [[MyCustomImageClassifier alloc] init] ; _coreMLModel = [VNCo...
2020-02-18 16:38:17
682
原创 WKWebView捕获JS Error 跨域解决
通过window.onerror捕获到js error以后,发现js error都是Script error,毫无参考价值,webkit源码查看可知,script资源加载的地方,是进行了同源策略判断的,如果是非同源资源,errorMessage就被写死了Script errorFile跨域漏洞UIWebView虽然已经被遗弃,但依然还有很多app继续使用,且最新版本的iOS也会兼容UIWeb...
2020-02-11 19:27:41
3093
原创 WKWebView捕获JS Error
WebView里面会经常发生JSError,但是很多开发者却并未考虑过收集 JavaScript 出错时抛出的异常信息。因为只要 JavaScript 异常后 App 不会崩溃,当没有发生过就好了。或许,在浏览器时代,让用户刷新下页面,可以解决异常问题。但是在移动 App 的 H5 页面,一但出现异常将导致程序无法正常运行,用户也不是那么容易可以通过刷新来解决问题的。try-catch 主动...
2020-02-11 11:26:02
2921
原创 IOS图片分类
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用原文链接:图片分类图片分类图片分类器的目标是在给定目标图片的情况下,能识别出该图片的标签。深度学习最近被证明可以在这个具有挑战性的问题上获得令人难以置信的结果。然而,这个结果是以不断对模型进行调參和训练为代价的。这意味着一个人可能需要花费数月的时间来测试不同配置的模型,但时间太长的情况下,投入产出比就很低。但是,Turi Cre...
2020-02-05 19:33:56
704
原创 图片分类器是如何工作的?
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用。原文链接:图片分类器如何工作的?图片分类器是如何工作的?深度学习是在机器学习世界中随处可见的一个短语。它似乎正在帮助我们取得巨大的突破,但深度学习是什么呢?它是一种具有多层非线性转换的模型,频繁的通过该模型学习数据的高层表达的一种方法。让我们花点时间分析一下最后一句话。学习数据的高层表达意味着深度学习模型将获取数据,例如图片的...
2020-02-05 19:33:23
883
原创 图片分类器部署到Core ML
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用。原文链接:部署到Core ML部署到Core ML借助Core ML框架,您可以使用机器学习模型对输入数据进行分类。 可以使用export_coreml函数导出Core ML格式的模型。model.export_coreml('MyCatDogClassifier.mlmodel')在Xcode中打开模型时,其外观如下所...
2020-02-05 18:30:57
505
原创 高级使用(图片分类)
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用。原文链接:高级使用高级使用在本节中,我们将介绍图片分类器工具包中的一些高级选项,这些将使你可以执行更多操作。标注数据如果只有图片而没有相应的标签,你可以使用内置在image_classifier中的标注工具。其用法如下所示:import turicreate as tc# Use the example provid...
2020-02-05 16:18:16
471
原创 再谈IOS堆栈和还原
1、符号表是什么符号表就是指在Xcode项目编译后,在编译生成的二进制文件.app的同级目录下生成的同名的.dSYM文件。.dSYM文件其实是一个目录,在子目录中包含了一个16进制的保存函数地址映射信息的中转文件,所有Debug的symbols都在这个文件中(包括文件名、函数名、行号等),所以也称之为调试符号信息文件。一般地,Xcode项目每次编译后,都会生成一个新的.dSYM文件。因此,A...
2020-02-03 13:40:29
2021
原创 在Facebook iOS app中减少FOOMs
最近在看FOOM,翻译一下facebook的解决方案。原文链接在Facebook iOS app中减少FOOMs在Facebook iOS app中减少FOOMs在Facebook,我们致力于使我们的应用程序稳定、快速和可靠。我们一直在努力减少Facebook IOS应用中的崩溃次数,并提高其整体的可靠性。过去,大多数crash是由于程序错误引起的,并且它们总是带有可以定位错误的堆栈和一直...
2020-01-26 21:58:52
513
原创 UIAlertController和UIActivityViewController在ipad中的兼容性问题
今天业务侧说是让sdk在ipad中也可以运行。但是会必先crash。经过定位发现是因为UIAlertController和UIActivityViewController在ipad上存在兼容性。UIAlertController报的错误如下所示:Terminating app due to uncaught exception 'NSGenericException', reason: 'Yo...
2020-01-17 16:30:22
1604
原创 目标检测工作原理(翻译)
原文链接:目标检测工作原理目标检测工作原理长期以来,目标检测模型使用分离的机制进行定位(where)和分类(what)。这些模型称为两阶段检测器,效果也非常不错。但是,最近的工作已经将这两个步骤组合为一个深度学习模型,使模型成为了一个一阶段检测器。“You Only Look Once: Unified, Real-Time Object Detection” by Joseph Redm...
2020-01-12 16:55:46
740
原创 部署到Core ML(翻译)
原文链接:部署到Core ML部署到CoreML在Turi Create中创建的目标检测模型可以很容易的部署到Core ML在iOS12 和 macOS10.14(Turi Create 5)中部署模型使用Turi Create 5.0+ 、iOS12 和macOS10.14,你可以通过Vision Framework直接集成目标检测模型。你可以直接在Turi Create5中导出到Co...
2020-01-12 15:17:27
668
原创 高级使用(翻译)
原文链接:高级使用高级使用本小节会更详细的描述评估指标,以及如何使用Core ML将模型部署到iOS或macOS应用程序中。评估如果在创建模型之前保留了标注的数据,你可以使用它来定量评估模型。你可以通过拆分数据来执行评估。import turicreate as tctrain, val = data.random_split(0.8)model = tc.object_detec...
2020-01-12 11:37:19
316
原创 IG02数据准备(翻译)
原文链接:IG02数据准备在本节中,我们将向你展示如何下载公共可用的数据集并将其加载到SFrame中。这将使你可以自己尝试对象检测工具箱。为了使该数据集成为我们工具箱期望的输入格式,我们将依赖许多有用的SFrame函数。注意:请确保在Turi Create4.3或更高版本执行这些操作。我们将使用的数据集是INRIA Annotations for Graz-02 (IG02)[1][2]。我...
2020-01-11 21:58:21
332
原创 IOS目标检测(翻译)
原文链接:目标检测目标检测目标检测是在图片中对目标进行分类和定位。给定一幅图片,检测器会对目标进行预测,如下图所示:该模型是用来检测动物面部。并通过圈在目标周围的边界框对目标进行注释入门实例在该例子中,目标是预测图片中的汽车和自行车以及它们在图片中的位置(可以跳转到 数据准备 来了解怎么获取 ig02.sframe)import turicreate as tc# Load th...
2020-01-11 20:54:24
490
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人