1.准备源码及所需文件
1.1 可前往官网下载 objc4-756.2源码 ,下载后解压工程为下图所示:


2.开始调试
2.1 创建调试target

2.2 添加依赖(目的为了使创建的target调用本地源码生成的库文件)
将静态库工程 objc 添加为 objc-debug 的 Dependenciesg,在 Link Binary With Libraries 中添加 libobjc.A.dylib

command+B开始编译
2.3 解决编译错误
Error 1


Error 2 缺失文件sys/reason.h


command+B
Error 3 缺失文件mach-o/dyld_priv.h
Error 4 缺失文件os/lock_private.h
Error 5 缺失文件os/base_private.h
Error 6 缺失文件pthread/tsd_private.h
Error 7 缺失文件System/machine/cpu_capabilities.h
Error 8 缺失文件os/tsd.h
Error 9 缺失文件pthread/spinlock_private.h
Error 10 缺失文件System/pthread_machdep.h
Error 11 缺失文件CrashReporterClient.h
注意添加CrashReporterClient.h文件后 需添加 #define LIBC_NO_LIBCRASHREPORTERCLIENT 否则报错

Error 13 缺失文件_simple.h
Error 14 缺失文件Block_private.h
这些缺失文件与sys/reason.h补全方法一致添加至Include目录下即可 command+B
Error 15

在objc target->build Setting->Link->Order File处添加$(SRCROOT)/libobjc.order


Error 16


Error 17

1.把Text-Based InstallAPI Verification Model里的值改为Errors Only
2.清空 Other Text-Based InstallAPI Flags中的值

2.4 编译成功

