ios
lfdanding
这个作者很懒,什么都没留下…
展开
-
软件测试之SDK开发(ios)——fishhook不能hook动态库和framework之间的相互调用
fishhook利用ios的动态库符号延迟绑定机制进行hook,原理已经在软件测试之SDK开发(ios)——fishHook原理介绍介绍过了。但是这种延迟绑定机制仅有在可执行文件调用动态库或framework时才会发生。而动态库和framework之间的相互调用,在被加载时就确定了所有符号的地址,调用时是直接跳到相应的函数入口地址。我们以objc_msgSend为例进行查看。首先在MachOvi...原创 2019-11-06 21:28:06 · 1400 阅读 · 3 评论 -
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 · 670 阅读 · 0 评论 -
Flutter集成到ios项目中
现在Flutter项目集成到IOS项目中,有两种方式,一种是通过frameworkrk,另一种是通过cocospod后续完善参考文章https://flutter.cn/docs/development/add-to-app/ios/project-setup原创 2021-09-29 10:08:22 · 155 阅读 · 0 评论 -
Flutter事件分发和坐标获取
Flutter事件分发可以使用RendererBinding.instance.hitTest(hitTestResult, position);,获取整个响应的控件列表,根据文章Flutter完整开发实战详解(十三、全面深入触摸和滑动原理),在这个控件列表里,最底下的 Child 在最上面。hitTest 方法主要为了得到一个 HitTestResult ,这个 HitTestResult 内有一个 List 是用于分发和竞争事件的,而每个 HitTestEntry.target 都会存储每个控件的 R原创 2021-09-21 21:39:09 · 444 阅读 · 0 评论 -
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 · 216 阅读 · 0 评论 -
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 · 1163 阅读 · 0 评论 -
Xcode输出: Message from debugger: Terminated due to signal 9
参考文章:1、https://my.oschina.net/u/2470593/blog/709608原创 2020-08-10 11:02:30 · 2128 阅读 · 0 评论 -
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 · 1099 阅读 · 0 评论 -
iOS LLDB调试
调试是开发程序的利器,在开发的过程中,掌握好的调试方法可以节省大量的时间,本文简单介绍一下iOS的LLDB调试expression命令在程序的运行过程中想要改变某个变量的值来改变程序的行为,express命令再适合不过了如上图所示,number本身传入的是11 ,但是通过expression命令expression number = 9将number赋值为9,达到改变程序的目的run命令调试的时候经常需要重新启动程序。但是如果重新Run程序,需要重新编译,非常浪费时间。可以在 lldb 中输入r原创 2020-05-27 19:46:35 · 277 阅读 · 0 评论 -
ios arm64汇编调试
最近在看 ios 的 inline hook,免不了需要了解一下 arm64 汇编的知识,以及如何通过xcode去查看和调试汇编代码。1、如果通过XCode查看汇编代码在调用处添加断点,然后依次选择Xcode菜单中的 Debug->Debug Workflow->Always Show Disassembly命令后,就直接以汇编代码呈现了:2、如何通过Xcode查看核心寄存器变...原创 2020-04-29 17:21:00 · 1038 阅读 · 0 评论 -
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 · 3350 阅读 · 0 评论 -
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 · 699 阅读 · 0 评论 -
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 · 3266 阅读 · 0 评论 -
WKWebView捕获JS Error
WebView里面会经常发生JSError,但是很多开发者却并未考虑过收集 JavaScript 出错时抛出的异常信息。因为只要 JavaScript 异常后 App 不会崩溃,当没有发生过就好了。或许,在浏览器时代,让用户刷新下页面,可以解决异常问题。但是在移动 App 的 H5 页面,一但出现异常将导致程序无法正常运行,用户也不是那么容易可以通过刷新来解决问题的。try-catch 主动...原创 2020-02-11 11:26:02 · 3001 阅读 · 0 评论 -
图片分类器部署到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 · 523 阅读 · 0 评论 -
图片分类器是如何工作的?
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用。原文链接:图片分类器如何工作的?图片分类器是如何工作的?深度学习是在机器学习世界中随处可见的一个短语。它似乎正在帮助我们取得巨大的突破,但深度学习是什么呢?它是一种具有多层非线性转换的模型,频繁的通过该模型学习数据的高层表达的一种方法。让我们花点时间分析一下最后一句话。学习数据的高层表达意味着深度学习模型将获取数据,例如图片的...原创 2020-02-05 19:33:23 · 898 阅读 · 0 评论 -
高级使用(图片分类)
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用。原文链接:高级使用高级使用在本节中,我们将介绍图片分类器工具包中的一些高级选项,这些将使你可以执行更多操作。标注数据如果只有图片而没有相应的标签,你可以使用内置在image_classifier中的标注工具。其用法如下所示:import turicreate as tc# Use the example provid...原创 2020-02-05 16:18:16 · 484 阅读 · 0 评论 -
再谈IOS堆栈和还原
1、符号表是什么符号表就是指在Xcode项目编译后,在编译生成的二进制文件.app的同级目录下生成的同名的.dSYM文件。.dSYM文件其实是一个目录,在子目录中包含了一个16进制的保存函数地址映射信息的中转文件,所有Debug的symbols都在这个文件中(包括文件名、函数名、行号等),所以也称之为调试符号信息文件。一般地,Xcode项目每次编译后,都会生成一个新的.dSYM文件。因此,A...原创 2020-02-03 13:40:29 · 2083 阅读 · 0 评论 -
在Facebook iOS app中减少FOOMs
最近在看FOOM,翻译一下facebook的解决方案。原文链接在Facebook iOS app中减少FOOMs在Facebook iOS app中减少FOOMs在Facebook,我们致力于使我们的应用程序稳定、快速和可靠。我们一直在努力减少Facebook IOS应用中的崩溃次数,并提高其整体的可靠性。过去,大多数crash是由于程序错误引起的,并且它们总是带有可以定位错误的堆栈和一直...原创 2020-01-26 21:58:52 · 543 阅读 · 0 评论 -
IOS图片分类
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用原文链接:图片分类图片分类图片分类器的目标是在给定目标图片的情况下,能识别出该图片的标签。深度学习最近被证明可以在这个具有挑战性的问题上获得令人难以置信的结果。然而,这个结果是以不断对模型进行调參和训练为代价的。这意味着一个人可能需要花费数月的时间来测试不同配置的模型,但时间太长的情况下,投入产出比就很低。但是,Turi Cre...原创 2020-02-05 19:33:56 · 726 阅读 · 0 评论