错误: ld: object file ???.o was built with invalid arm64e ABI (128)
原因: XCode11混合链接XCode12+产生的二进制
经测试有如下规律
- arm64进程兼容arm64模块
- arm64e_2进程兼容arm64e_2模块
- arm64e_0x80000002进程兼容arm64e_2/arm64e_0x80000002模块
XCode11/clang11 arm64e 生成二进制cpu_sub_type=2 (iOS12-13)
XCode12+/clang12+ arm64e 生成二进制cpu_sub_type=0x80000002 (iOS14+)
可以看出cpu_sub_type=2是苹果的一个设计bug,在iOS14后改为0x80000002且兼容旧版的2
同时也可以证明iOS12-13是XCode11-开发的,iOS14+是XCode12+开发的