錯誤: ld: object file ???.o was built with invalid arm64e ABI (128)
原因: XCode11混合鏈接XCode12+產(chǎn)生的二進制
經(jīng)測試有如下規(guī)律
- 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是蘋果的一個設(shè)計bug的止,在iOS14后改為0x80000002且兼容舊版的2
同時也可以證明iOS12-13是XCode11-開發(fā)的擂煞,iOS14+是XCode12+開發(fā)的