Lazy Blog

不想当厨子的司机不是好码农

批量改变图片尺寸

由来 昨天临时需求换icon,想想之前自己写过一个批量生产icon的脚本。但是不够灵活,无法面对项目中这些命名不会烦,不合理的的场景。于是我对这个脚本升了个级,在支持Python3的同时,支持根据配置文件内容读取配置,输出。妈妈再也不用担心我换icon写错名字了。 如何使用 首先得安一个Python3,其次得安一个pillow,Mac 上略微比较麻烦,命令如下 # 直接pip ins...

Aspects源码阅读笔记

解读思路 先看完Aspects.h头文件 再看AspectInfo类,AspectIdentifier,AspectsContainer,AspectTracker 再按照hook的主流程,add remove 整体过了一遍,还是有点懵,不过比看这段代码之前强夺了。 源码 头文件,几乎每一句都有注释 // // Aspects.h // Aspects - A delig...

@synchronized 源码阅读笔记

特点 用着方便,可读性高(妈妈再也不用担心我忘记调用unclock 了) @synchronized block在被保护的代码上暗中添加了一个异常处理。为的是同步某对象时如果抛出异常,锁会被释放掉。 反正是我看到的、用的,第一个锁,在很久很久以前。 疑问 锁是怎么与你传入的 @synchronized的对象关联上的? 传入一个nil 会怎么样? @sync...

Git工作流规范整理

命名 分支命名规则 master:同步线上AppStore 代码。每次发版完毕,会往这里合。 develop:当前开发代码。 develop10.0.1:10.0.1为当前开发版本,可有可没有。(有人喜欢针对当前版本新建一个分支,建议发版以后merge入develop删除,留下tag即可)。 develop_damao:大毛的...

Git工作目录瘦身

iOS组件化系列 《使用Cocoapods创建私有podspec》 《使用Cocoapods 踩过的坑》 《定时取源码执行pod lib lint校验》 《cocoapods依赖关系导出》 《iOS 组件二进制》 《Git工作目录瘦身》 由来 cocoapods在组件化过程中,有的团队会把Pods上传,有的不会。我认为在壳工程中,Pods纳入版本管理是有必要...

YYKit源码阅读

源码阅读系列 YYKit 宏定义 YYSYNTH_DUMMY_CLASS /** Add this macro before each category implementation, so we don't have to use -all_load or -force_load to load object files from static libraries that on...

Objective-c 枚举和字符串互相转换

Objective-c 中枚举和字符串转换时候很常见的一个应用场景 套路列举 switch case 大家都会写,就不占篇幅了 数组 //枚举定义 typedef NS_ENUM(NSUInteger, BPEPlaceHolderType) { BPEPlaceHolderType_None = 0,//没有占位图,保留老代码中的值,各业务线不...

iOS 马甲包制作指南

来由 公司有段时间想上马甲包,调研了一下,虽然最终没上,所以记录一下。 这是一个和苹果斗智斗勇的过程,当然从开发生态来看,这不是一件好事,不鼓励。 总结了一下,大体是这么个思路 技术层面 基本上参考 自动翻新专家(WHC_ConfuseSoftware) 就很完美了,可惜是闭源的。也有无私的同学贡献了一个开源的工具iOS 马甲应用工具,回想起我之前用Python 写过一个批量更改类...

iOS 组件二进制

iOS组件化系列 《使用Cocoapods创建私有podspec》 《使用Cocoapods 踩过的坑》 《定时取源码执行pod lib lint校验》 《cocoapods依赖关系导出》 《iOS 组件二进制》 由来 目前的现状是安卓在快照包的帮助下,两分钟出个包,iOS在垃圾桶上得十多分钟吧,我本地半个小时也是...

iOS脚本打包升级

这是打包系列 第一篇 《iOS jekins 打包》 第二篇 《iOS 脚本打包》 第三篇 《iOS脚本打包升级》 如何使用 执行 ./package.sh -h package.sh [-h | [-a <app>] | [-b <branch>] | [-c <...