摘要:
一、准备工作 1)接上一篇,下载砸过壳的抖音IPA 2)MonkeyDev环境 3)class_dump 二、使用MonkeyDev建立空的工程,拖入IPA到目标文件夹中 1)启动Xcode进行编译执行 一起动就crash,说明签名校验已经通过。 遇到上面的错误,经过查询说是,抖音App内部通过pt 阅读全文
摘要:
一、前言 随着iOS系统的逐渐开放,iOS越狱需求的人越来越少,那么在非越狱系统上面开发越狱插件那将是一个不错的选择,在github上面发现一个开源的Xcode工程模板。 整合了越狱开发的工具、重签名工具、以及常用的库,方便在非越狱模式下面进行代码的修改和插件的开发。 这个工具有重要的意义,降低了a 阅读全文
摘要:
一、音频 二、视频: 三、测试设备 iPhoneX + 11.x系统 阅读全文
摘要:
一、问题引入 近日开发中引入一个随机crash,Crash堆栈如下: 明显是对一个对象进行retain的时候产生的Crash。仔细回忆却没有发现突破点。直到看到自己写的下列代码 经过代码验证,stackBlock作为参数传递的时候,需要确保对其进行copy操作,否则stackBlock在函数返回之后 阅读全文
摘要:
一、现象 今日在开发中遇到一个诡异问题,一个自定义的AlertView在显示之后瞬间在屏幕上消失,但是其对象在内存中依然存在 二、排查 通过lldb命令查询到view.superview.superview不存在为nil,才明白这个view的父view的父view被释放掉了,释放过程中该view自动 阅读全文
摘要:
一、问题: 如何在Autolayout模式中设置一个UIView的layer.cornerRadius? 二、解决: UiView的layer目前还不支持Autolayout设置约束,因此如果想设置一个layer.cornerRadius的大小,必须传递的是一个值。 如果被设置的UIView尺寸会发 阅读全文
摘要:
一、测试环境 iPhoneX 真机+Debug模式,Timer代码工作在主线程,主线程空闲不阻塞 在子线程统计每3秒tick计数,逐步减小inteval,看能达到多大精度。 忽略原子计数值操作的影响 二、测试代码 间隔分别设置为1000us,100us,10us,对应结果如下; 三、结论 GCD T 阅读全文
摘要:
一、结论 1)@synchronized内部使用的是recursive_mutex_lock,也就是递归锁,对于统一线程来说,@synchronized加锁的方法可以重复加锁。 比如代码: 输出结果为: 2)@synchronized 可以看成一个函数,加锁的对象是后面传入对象的地址,所以如果加锁对 阅读全文
摘要:
一、题目分析 要求不能采用复制的手段,不能使用多余的空间 解析: 可以看出规律,最后的结果是将链表右边的部分逆转之后,和左边的部分穿插合并得来: 二、代码: 阅读全文
摘要:
一、流程说明 1)fluter是一个跨平台UI库,可以一份界面代码在iOS和Android上面运行 2)在Mac上面安装Fluter的环境,相对比较简单,通过简单的命令行可以设置环境 3)可以使用特定IDE,代码可以热调试 4)官方说Dart和swift和OC可以混合使用,下一次探索这一点 二、安装 阅读全文