1.介绍 在讲XCTest之前我们先来了解一下单元测试。单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证,通过开发者编写代码去验证被测代码是否...
1.介绍 在讲XCTest之前我们先来了解一下单元测试。单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证,通过开发者编写代码去验证被测代码是否...
一. 原理分析 FBRetainCycleDetector的原理:是基于DFS算法,把整个对象之间的强引用关系当做图进行处理,查找其中的环,就找到了循环引用。 二. 检测NS...
AVAudioSession 简要说说AVAudioSession,AVAudioSession是苹果用来管理App对音频硬件(I / O)的资源使用;比如说: 设置APP与...
App Store Connect API的使用主要分为三步 1、在App Store Connect 里面创建密钥(要使用账户持有人的账号才有权限)2、获取 JSON We...
概述 从两个方面来讲: js不能直接调用oc的方法 oc可以通过 - (void)evaluateJavaScript:(NSString *)javaScriptStr...
前置知识 符号 静态链接 汇编基础 虚拟内存 跳转指令的编码:PC相对地址与绝对地址 汇编跳转指令:直接跳转与间接跳转 正文开始 静态库有两个主要缺点: 一份代码在所有的进程...
iOS 底层原理 + 逆向 文章汇总[https://www.jianshu.com/p/412b20d9a0f6] 本文主要介绍Mach-O文件的内部结构的演示 Mach-...
Xcode默认的编译的时候,会生成Debug Symbols信息,这些信息可以使得我们在调试的时候能够看到代码执行的类、方法以及变量的信息;对于线上crash,可以通过这些信...
GCD 扫盲篇 Grand Central Dispatch 基础教程Swift:Part 1 & Part2-- 连续&并发,同步&异步,并发&并行,队列 GCD 深入理解...
作者:GABRIEL THEODOROPOULOS,原文链接,原文日期:2016-11-16译者:小锅;校对:saitjr;定稿:CMB 自中央处理器(CPU)出现以来,最大...
本文主要是分析main函数之前,底层做了什么 -- dyld的加载流程 例子 新建一个项目,在ViewController中重写laod方法,然后再main函数中添加一个C+...
1.CydiaSubstrate Hook CydiaSubstrate,iOS7越狱之前名为 MobileSubstrate(简称为MS或MS框架),作者为大名鼎鼎的Jay...
1、inlineHook概述 所谓InlineHook(内联钩⼦),就是直接修改⽬标函数的头部代码。让它跳转到⾃定义函数中执⾏代码,从⽽达到Hook的⽬的。这种Hook技术⼀...
本demo以通讯录的c function为例 hook其中的一个c function。 app为 这个app是在获取通讯录的授权之后,获取每一个通讯录名片的详细信息 此处要h...
一、前言二、注入思路三、动态库注入实现四、分析实现按钮监听五、实战修改微信步数 一、前言 在文章《应用签名-脚本签名》[https://www.jianshu.com/p/5...
1、替换系统IMP 1.1、创建FrameWork 在framework中通过fishhook替换系统的IMPMethodSwizzle1、method_exchangeIm...
初探反HOOK防护 当HOOK第三方App时,对于OC方法,一般会使用Method Swizzle。例如:使用系统提供的method_exchangeImplementati...
完整项目 GSD_WeiXin 高仿微信 v2ex - v2ex 的客户端,新闻、论坛。 V2ex-Swift - 用 Swift 写的 V2EX 客户端。 iBBS-Swi...
场景需求 线上app运行过程中有内存突变、卡顿、cpu飙升、crash等情况,需要获取发生这些情况时的所有堆栈信息,以此来辅助定位问题 1. callStackSymbols...