CaicaiNo.1
码龄9年
关注
提问 私信
  • 博客:349,290
    349,290
    总访问量
  • 154
    原创
  • 281,526
    排名
  • 414
    粉丝
  • 20
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2016-05-12
博客简介:

CaicaiNo.1

博客描述:
生活需要激情,就像鱼需要水
查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    219
    当月
    1
个人成就
  • 获得122次点赞
  • 内容获得45次评论
  • 获得249次收藏
  • 代码片获得338次分享
创作历程
  • 1篇
    2024年
  • 5篇
    2021年
  • 71篇
    2020年
  • 57篇
    2019年
  • 7篇
    2018年
  • 4篇
    2017年
  • 12篇
    2016年
成就勋章
TA的专栏
  • iOS开发
    89篇
  • 音视频开发
    23篇
  • iOS逆向以及SDK开发
    14篇
  • Mac开发
    34篇
兴趣领域 设置
  • 移动开发
    flutterreact native
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

352人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Mac公证脚本-Web公证方式

macos web 公证脚本流程
原创
发布博客 2024.02.20 ·
1505 阅读 ·
28 点赞 ·
1 评论 ·
7 收藏

iOS开发-iOS如何本地调试JS

文章目录前言Charles代理HTTPS代理设置WKWebView的缓存机制本地映射html 资源请求远端映射映射到远端映射到本地服务器Safari的调试功能前言最近在排查问题时,遇到Html网页问题,总结下调试经验Charles代理HTTPS代理设置关于 charles 的 https 代理设置,这里简单说明下:打开 Charles,选择上侧菜单栏,选择 SSL Proxying ,安装证书到手机 Mobile Device根据弹框提示,打开网址下载证书,并信赖,然后配置wifi在同一网
原创
发布博客 2021.04.19 ·
1515 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

iOS开发-逆向注入SDK(三)MonkeyDev注入打包

文章目录MonkeyDev使用注入SDKMonkeyDev强大的工具集,MonkeyDev ,使用它行了!安装教程见 Wiki使用拿着之前通过 frida砸壳 的 ipa包,先创建一个 MonkeyDev 工程。这里以 qqmusic 为例将砸壳的 ipa 放到 qqmusic/TargetApp/ 下,然后拖拽至工程文件中。设置主工程的证书,dylib的不用设置提示 Showing All Messages Signing for "qqmusicDylib" requir
原创
发布博客 2021.03.23 ·
2610 阅读 ·
0 点赞 ·
2 评论 ·
8 收藏

iOS开发-逆向注入SDK(二)frida砸壳

文章目录下载app使用frida完成 iOS开发-逆向注入SDK之iOS越狱 之后 ,我们开始砸壳app下载app手机安装了 爱思极速版 后,我们可以不经过 appstore 下载,因为是砸壳,选择一些不需要登录的app为好,选择微信,登录后可能会被封号。使用fridafrida算是比较无脑的一个,简单,所以这里选择用它。下拉 frida-ios-dumpgit clone https://github.com/AloneMonkey/frida-ios-dump下拉仓库。cydia
原创
发布博客 2021.03.22 ·
1013 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

iOS开发-逆向注入SDK(一)iOS越狱

越狱这里采用使用 iphone 5S, iOS 12.4.9 为例,进行 非完美越狱非完美越狱:重启手机越狱失效,需要再进行越狱,越狱也不麻烦,点几下就行了,不过不关机就行了哈i4助手安装 i4助手(爱思助手) https://www.i4.cn/ 是个很好的软件,如果你的手机变砖了,正好可以使用它刷机。不过被密码锁定的手机不行。如果你的iphone已经开机就黑,选择合适的固件版本,进行刷机这里对其功能不做进一步说明,低版本可以直接完美越狱,我们这里仅使用它来方便访问越狱文件以及安装a
原创
发布博客 2021.03.22 ·
744 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

iOS开发-NSThread子线程autoreleasepool的问题

前言对于 NSThread 开启的子线程,我们需要在 main 函数中创建一个autoreleasepool,当我们从其他线程跳转到该线程执行时,对象是如何释放的呢?主线程是由于runloop的循环,在beforeWait时,触发主线程的autoreleasepool的pop和push操作来释放的,而子线程并没有自动添加这些observer,那么如何释放的?探索跳转到我们线程执行任务的方法如下,使用了performSelector:系列的方法。OBJC_EXTERN void _objc_autor
原创
发布博客 2021.02.04 ·
1401 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

iOS - 关于对App跳转方法的hook

文章目录App的跳转方法hookApp的跳转方法实现app跳转有urlscheme以及universal Link(deep link) 跳转。url schemeapplication:openURL:options:是最新的方法,其他两个都废弃了- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id>
原创
发布博客 2020.12.04 ·
1129 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

iOS开发-关于iOS13.4的UITextMultiTapRecognizer问题记录

UITextMultiTapRecognizer 在 iOS 13.4上,点击 UITextField 时,会由UITextMultiTapRecognizer 触发事件。通过 hook UIApplication的sendAction:to:from:forEvent:- (BOOL)growing_sendAction:(SEL)action to:(id)target from:(id)sender
原创
发布博客 2020.09.22 ·
440 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS开发 - OCLint的自定义规则编写

文章目录通过Xcode显示Warning方案的选择简易Rule编写brew安装Aggregate 添加脚本规则编写通过Xcode显示Warning方案的选择前面已经说过如何添加自定义的规则rule以及Xcode调试:iOS开发 - OCLint自定义规则的编译与Xcode调试一般来说,我们都有这样的需求:想在写代码的时候,就能分析出代码问题,并及时进行修改。虽然OCLint能够分析单个文件,但没有Xcode插件,像 Analyze 这样的实时分析可能并不好实现,这里我们就选择编译一次然后在项目中提示
原创
发布博客 2020.07.20 ·
1658 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

iOS开发 - 创建自定义的brew仓库oclint-0.15

文章目录背景创建仓库brew create创建tap使用参考文档背景项目需要使用 oclint 0.15 版本,并添加一定的规则 rule ,这里oclint 0.13版本之后就没有再更新了,两个版本由于clang版本不同,不能共用,如果让每个人去拉包,然后替换,太繁琐了,这里创建一个brew库用于快速集成。在 Homebrew 的架构下,至少有 4 层概念Keg(酒桶):安装好的脚本、软件等;Cellar(酒窖):所有用 Homebrew 安装在本地的脚本、软件组成的集合;Formula(配
原创
发布博客 2020.07.16 ·
588 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS开发 - NSUUID的重复概率问题

文章目录概述探索概述对于 [[NSUUID UUID] UUIDString] 产生的字符串有可能重复吗?概率是多少?code代码时是否需要考虑?探索根据 NSUUID的苹果官方说明 阐述:UUIDs (Universally Unique Identifiers), 也被称作 GUIDs (Globally Unique Identifiers) 或者 IIDs (Interface Identifiers), 是128位值. NSUUID创建的uuid符合RFC 4122 version 4,
原创
发布博客 2020.07.13 ·
2727 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

iOS开发 - NSHashTable与Runloop所造成的强引用问题

文章目录概述Runloop Observer的问题AutoreleasePool界面更新概述首先,我来描述一下这个问题,NSHashTable 是OC中用于弱引用对象的NSMutableSet 类型,在项目使用中,我们发现调用其 allObjects 方法会造成强引用关系,导致对象不会释放。具体情况如下:我们监听了主线程的 Runloop 并在 kCFRunLoopBeforeWaiting | kCFRunLoopExit 时触发,由于我们需要统计 UITableViewCell 的信息,所以我们将
原创
发布博客 2020.07.03 ·
835 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS开发 - Runloop的mode是如何切换的

文章目录问题探索Runloop的mode是如何切换的mode切换时会退出吗?问题Runloop的mode是如何切换的?Runloop的mode切换时,上一个mode是需要退出吗?探索Runloop的mode是如何切换的UITableView滑动时,Runloop会进行切换mode,由kCFRunLoopDefaultMode切换为UITrackingRunLoopMode,根据源码,切换mode实际是调用CFRunLoopRunSpecific 这个函数SInt32 CFRunLoopRu
原创
发布博客 2020.07.01 ·
1694 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

iOS开发 - OCLint自定义规则的编译与Xcode调试

OCLint的编译基于版本 oclint version 0.15OCLint 需要自定义规则的话需要自己编译
原创
发布博客 2020.06.23 ·
2056 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

iOS开发-NSMapTable NSHashTable NSPointerArray的使用

文章目录NSMapTableNSDictionary的局限性NSMapTable优势配置参数 OptionsMemory OptionARC下MRC下Personality optionsUsage快捷生成自定义配置NSHashTableNSHashTable 优势配置参数UsageNSPointerArrayNSPointerArray 特性创建Usage对于工程中使用的弱引用集合的特性进行整理,有些点还是容易忘记NSMapTable NSHashTable NSPointerArray 是iOS中用
原创
发布博客 2020.06.18 ·
2095 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

iOS开发 - method swizzle方式的选择

文章目录1 method swizzle方式的选择1.1 错误的swizzle方式1.2 正确的swizzle方式1.3 案例1 method swizzle方式的选择1.1 错误的swizzle方式根据 right-way-to-swizzle 文章的阐述,当我们进行方法交换时,实质是交换了objc_method结构体中的IMP函数指针struct objc_method SEL method_name OBJC2_UNAVAILABLE; char *meth
原创
发布博客 2020.06.16 ·
533 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RAC中宏的使用-预编译确定函数参数个数

RAC中宏的使用-预编译确定函数参数个数对于RAC框架中的宏定义,预编译期确认参数个数/** * Returns the number of arguments (up to twenty) provided to the macro. At * least one argument must be provided. * * Inspired by P99: http://p99.gforge.inria.fr */#define metamacro_argcount(...) \
原创
发布博客 2020.06.09 ·
438 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS开发-Audio Unit错误之CrashIfClientProvidedBogusAudioBufferList

类似堆栈如下:* thread #10, name = 'AURemoteIO::IOThread', stop reason = EXC_BAD_ACCESS (code=1, address=0x201862df8) * frame #0: 0x00000002276974e4 AudioToolbox`CrashIfClientProvidedBogusAudioBufferList + 64 frame #1: 0x00000002277ed378 AudioToolbox`Audio
原创
发布博客 2020.05.17 ·
1407 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS开发-NSObject的alloc函数执行

文章目录前言流程callAllocallocWithZone对流程的影响_class_createInstanceFromZone方法init和new前言探索下alloc的方法执行流程debug来调试runtime源码,执行以下逻辑:NSObject *objc1 = [[NSObject alloc] init];id __weak objc2 = objc1;id __weak objc3 = objc2;流程callAlloc调用 callAlloc// Calls [cls a
原创
发布博客 2020.05.10 ·
432 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS开发-FBRetainCycleDetector中的深度优先搜索DFS

文章目录图有向图图的实现方式遍历广度优先搜索 BFS深度优先搜索 DFSFBRetainCycleDetector的应用最近复习 FBRetainCycleDetector 源码的时候,需要的图的查询方法,深度优先搜索,这里记录下,便于系统复习。这里仅仅为分析FBRetainCycleDetector实现原理,采用深度优先搜索DFS图图由顶点(vertex)和边(edge)组成,通常表示为...
原创
发布博客 2020.05.01 ·
601 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多