Objective-C:Category的内部实现机制

2021/3/23 posted in  iOS

iOS 代码重签名

2021/3/23 posted in  iOS

iOS 线程同步的方式

2021/3/22 posted in  iOS

如何设计 SDK 自动化框架

用途

  • 稳定性测试
  • 产物分析
2021/3/5 posted in  iOS

iOS UI 自动化录制实现原理

2021/3/5 posted in  iOS

iOS 无侵入埋点实现原理

2021/3/5 posted in  iOS

NSMapTable 的使用

2021/2/22 posted in  iOS

SQLite 加解密探索

最近要实现移动端 sqlite 数据库文件的加解密,原以为SQLite有提供加解密的功能。没想公开版本(官方文档叫 unenhanced public-domain version of SQLite )的SQLite并没有提供此功能,而是提供了对应的接口给外部去实现。

Read more   2021/1/13 posted in  iOS

SDWebImage 对图片Scale的处理

最近使用自己改造的图片图替换SDWebImage,发现加载出来图片的scale与 SDWebImage 不一致,遂借鉴一下SDWebImage的实现。

Read more   2021/1/7 posted in  iOS

Xcode 单元测试快速使用

单元测试,验证 SDK 或者工具组件还是挺靠谱的。用于某次迭代中修改内部实现时进行快速验证。

使用很简单,来进行快速入门使用下吧

Read more   2021/1/7 posted in  iOS

Voip PushKit 初探

按照苹果的知道文档进行配置后,使用Xcode 12 跑程序遇到了如下的错误:

PushKit apps that use VoIP push must link either CallKit or IncomingCallNotifications frameworks.

出现此错误是因为 iOS 13 的SDK对PushKit使用进行了更新,要求一定要使用CallKit处理PushKit的通知:

https://developer.apple.com/documentation/pushkit/pkpushregistrydelegate/2875784-pushregistry?language=objc

当与iOS 13 SDK或更高版本链接时,你对该方法的实现必须通过调用你的应用程序的CXProvider对象的reportNewIncomingCallWithUID:update:completion:方法,向CallKit框架报告PKPushTypeVoIP类型的通知。当你调用该方法时,除非发生错误,否则系统会向用户显示标准的来电界面。例如,如果用户启用了 "请勿打扰",系统就会报告一个错误。你可以在通知CallKit的同时建立与VoIP服务器的连接。

使用 CallKit 处理 PushKit 的通知:

https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit?language=objc

2020/10/16 posted in  iOS

沙盒中的图片数据格式

写了图片data数据到沙盒,又想保留图片格式?

Read more   2020/9/21 posted in  iOS

【转】NSPredicate

2020/9/12 posted in  iOS

Wireshark 抓包 iPhone 数据包

连接手机

想抓iphone的数据,首先需要让iphone数据通过mac才行。看到网上很多设代理什么的方法,比较复杂,有的还要越狱。其实没必要。只要链上数据线,然后在mac的终端执行:

rvictl -s iphone设备id  

断开链接执行

rvictl -x iphone设备id  
Read more   2020/9/1 posted in  iOS

【转】 CocoaPods 多版本共存

在我工作的一个团队中,我们有很多关于安装 CocoaPods 的问题。团队成员拥有不同的 cocoapods gem 的安装版本,并且当有人运行 pod install 时,会将事情搞得一团糟。

我们最终不得不委托一人安装 CocoaPods,并且把工程推到 GitHub 上以供我们使用。这显然是不够灵活的,并且对于我们团队或者是委托人来说都不是一个很满意的解决方式。

Read more   2020/9/1 posted in  iOS

OC 创建对象的奇葩方式

使用OC开发了几年,看到过有人用了下面这样的方式初始化对象,当时觉得 woc !好6啊,高手啊!这什么骚操作,但是也没有问出个原理来,这次带各位一起来探索一下。

Read more   2020/7/31 posted in  iOS

dispatch_queue_create 指南

Read more   2020/7/7 posted in  iOS

CocoaPods Hooks

2020/4/3 posted in  iOS

Xcode `${SRCROOT}` 和`${PROJECT_DIR}` 区别

${SRCROOT}代表的时项目根目录下

${PROJECT_DIR}代表的是整个项目

Read more   2020/3/19 posted in  iOS

NSDate 什么时候需要考虑时区?

一般服务端返回使用的是UTC的时间戳,将时间戳转化为NSDate也是UTC的数据

使用NSDateFormater将Date转化为字符形式的时候,会使用系统默认的时区(当地的时区)进行时区的调整。

Read more   2020/2/28 posted in  iOS