CodeFog / 首次使用教程
CodeFog 首次使用:从项目备份到混淆后验证
本教程面向第一次使用 CodeFog(原 ZFJObsLib)的开发者。工具运行在 macOS 上;处理 iOS、Objective-C、Swift 或 Flutter 项目前,请先与作者确认当前版本及所需模块的适配范围。不同语言和模块不能默认视为完全相同的处理能力。
1. 在副本中处理,先确认原项目能编译
提交当前代码或复制一份完整项目,保留依赖、资源和工程文件。在原始版本完成一次编译和关键流程测试,将其作为对照。自动备份可作为补充,不替代你自己可恢复的源码备份。
2. 从少量功能开始,逐项验证
首次运行时,先选择一项确实需要的模块,例如属性混淆或资源名处理。记录此次配置,完成编译和功能测试后,再增加其他模块。逐项处理可以帮助定位是哪一类修改引起了问题。
3. 检查忽略路径与动态引用
第三方依赖、系统接口以及运行时依赖固定名字的代码,需要先检查过滤和忽略规则。比如服务端 JSON 字段映射的数据模型、反射读取的类名和通过字符串拼接的图片名称,不能只依赖静态文本替换。
文档中的路径示例:仅忽略 Home 下的 Models 目录时,使用 Home/Models 区分同名目录。过滤路径应按实际文件目录填写。忽略规则的作用范围因模块而异;日志出现一个文件名,并不等于该文件中所有标识都已被修改。
4. 保存配置、日志与映射列表
为每次处理保存原始版本、使用的配置、日志及导出的映射列表,和发布版本关联存档。文档介绍了后续处理时导入映射列表的操作,但代码或工具版本变化后,仍应重新验证结果,不能只凭导入成功判断兼容。
5. 编译通过后,还要测试运行结果
- 工程是否能在 Xcode 中打开,文件引用、依赖和构建设置是否完整。
- 数据模型能否正常解析,动态调用和公开接口是否仍然有效。
- 图片、音频及其他资源是否能加载,拼接生成的资源名是否需要处理。
- 关键业务、页面跳转及异常路径是否与处理前一致。
常见情况如何定位?
图片消失:先对照原版本,检查是否通过字符串拼接引用图片。资源重命名后,动态组合的引用不一定能自动替换。
模型字段解析失败:检查是否混淆了服务器字段对应的模型属性,根据需要过滤具体文件或目录,再用副本重试。
工程引用报错:检查虚拟分组与实际目录的对应关系,对照备份恢复;不要在唯一的工作副本上连续尝试。
遇到其他编译错误:先保留日志,回到最后一个可编译版本,减少本次开启的模块。咨询时提供工具版本、项目语言及错误信息,先移除源码中的私密内容。
授权、支持与能力边界
CodeFog 需要付费激活。购买 CDK 前请联系作者确认适配、授权范围与支持事项。源码混淆会增加阅读与分析成本,但不能保证无法反编译,也不能保证 App Store 审核通过。
