The linked library 'xxx.a(项目名称)' is missing one or more architectures required by this target: armv7.
最近封了一个组件,想做低版本的适配。但是Xcode 12无法使用iOS 10.0的模拟器,虽然可以下载 iOS 10.3.1的模拟器,但是调试列表里面缺看不到10.3.1的模拟器,最后买了一个二手iPhone 5用做低版本测试机。
错误
iPhone 5的测试机虽然可以读出来,但是运行的时候就报错 The linked library 'xxx.a' is missing one or more architectures required by this target: armv7.
初步解决方案
Target->Build Settings->Excluded Architectures 中添加 armv7
结果:可以运行,本以为问题解决了。但是当我换回 iPhone XS调试的时候,出现问题了。发现iPhone XS无法调适了 错误提示:
The linked library 'xxx.a' is missing one or more architectures required by this target: arm64.
解决方案就是把 原来 armv7 改为 arm64就可以了。
这个时候我们发现了问题,我们能不能把 armv7 和 arm64 都添加上去呢。结果是不行的,当我们把这两个架构都排除了以后,发现任何一个设备都无法调适了,因为Excluded Architectures
这个属性是排除一个架构。那么我们就只能调适 低版本 的时候 排除 armv7,调试高版本的时候 排除 arm64吗?那样也太麻烦了,有没有其他的解决方法吗?
最终解决方案
当切换低版本设备调试的时候
command + shift + k
就可以了,看到这里想必大家就知道怎么回事了。当低版本设备切换新版本时 同理。
网友评论