Lazy Blog

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

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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...

Flutter集成初体验

太长不看版:源码 官方集成方案 在Flutter 的FAQ里面有这么一个问题 1 2 3 4 5 6 Can I use Flutter inside of my existing native app? Yes, you can embed a Flutter view in your existing Android or iOS app, however our tooling...

iOS脚本打包

这是打包系列 第一篇 《iOS jekins 打包》 第二篇 《iOS 脚本打包》 第三篇 《iOS脚本打包升级》 效果 定时器 每隔两小时,自动触发一次脚本 不受系统重启影响 可以通过launchctl start手动触发 shell 通过脚本 ...

iOS jekins 打包

这是打包系列 第一篇 《iOS jekins 打包》 第二篇 《iOS 脚本打包》 第三篇 《iOS脚本打包升级》 jerkins 设置 参数化构建过程 把脚本所需的参数放到jekkins的设置里面 选项参数   名称 P...

cocoapods依赖关系导出

iOS组件化系列 《使用Cocoapods创建私有podspec》 《使用Cocoapods 踩过的坑》 《定时取源码执行pod lib lint校验》 《cocoapods依赖关系导出》 《iOS 组件二进制》 cocoapods依赖关系导出 其实Podfile.lock藏满了,各个版本库的版本号信息和彼此的依赖...

iOS icon加水印

iOS icon加水印 介绍 经常出现测试同事反馈新出的包没有修复已经修改的bug。一顿查,有时候是因为测试没有及时下新包,有的时候是因为开发没有及时git push 代码。想起之前同事提过给icon加水印是一个好办法,再结合把podfile文件内容显示在debug页面,效果也不错。 如何实现 搜到了两种方案,iOS——写一个快速定位问题的脚本没有试成,这种方案是进入编译后的工程目录,去...