Xcode 12以及以上版本,使用模拟器编译,使用真机不会报错,或者使用真机编译会报错,使用模拟器不会报错。
ld: in /Users/xxx/Documents/work/svn/EM-iOS/xxx/xxx/WarehouseMap/External/Captuvo/libCaptuvoSDK.a(Captuvo.o), building for iOS Simulator, but linking in object file built for iOS, for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
这个错误提示是使用模拟器编译报错的信息。从报错信息上分析可以看出,是因为libCaptuvoSDK.a这个SDK,不支持Simulator,也就说不支持 x86_4,所以模拟器不能编译。但是实际上,模拟器在之前都是支持的,升级Xcode 12之后才出现这个问题。
原因时Xocde12中新增了 VALLID_ARCHS的设置,TARGET -> Buding Setting -> User-Defined -> VALID_ARCHS。
这里是arm64,试用真机编译不会报错,使用模拟器编译就会报错。我尝试将i386 和|x86_64 添加进去,模拟器编译还是报错。
真机编译的时候添加 VALID_ARCHS 设置 arm64,
模拟器编译的时候删除所有设置即可。