Objc4-779.1 源码下载地址:https://opensource.apple.com/
target objc & objc-trampolines unable to find sdk 'macosx.internal'?
设置Build Settings BaseSDK ->macOS
说明缺省文件,通过Google 在opensource.apple.com上搜索相应的缺省文件,添加到项目中去 例如 reason.h site:opensource.apple.com
新建文件夹VVVExtraFiles,保留所有缺省文件,添加完相应的文件后,发现还是找不到对应的文件路径,这时需要设置Targets-Build Settings-Header Search Paths :$(SRCROOT)/VVVExtraFiles
缺省文件列表:
- reason.h
- dyld_priv.h (去掉bridgeos(3.0))
- lock_private.h (去掉bridgeos(4.0))
- base_private.h
- tsd_private.h
- cpu_capabilities.h
- tsd.h
- pthread_machdep.h (10.8.4 Libc-825.26)
- CrashReporterClient.h (LIBC_NO_LIBCRASHREPORTERCLIENT 添加到Preprocessor Macros)
- objc-shared-cache.h
- _simple.h (libplatform-220/private)
- Block_private.h
- restartable.h
dyld_priv.h 添加宏定义
#define DYLD_MACOSX_VERSION_10_11 0x000A0B00
#define DYLD_MACOSX_VERSION_10_12 0x000A0C00
#define DYLD_MACOSX_VERSION_10_13 0x000A0D00
#define DYLD_MACOSX_VERSION_10_14 0x000A0E00
tsd.private.h 与 pthread_machdep.h 方法重定义了,注释掉pthread_machdep.h中的方法
设置Targets-Build Settings Order files debug为:$(SRCROOT)/libobjc.order
删除Targets-Build Settings Other Link Flags 中的 -lCrashReporterClient
看样子应该是sh脚本编译了 macosx.internal 修改为macosx
终于编译成功了。。。Enjoy