在 arm64 真机(如:iPhone5s等)测试 ReactiveCocoa 的时候,突然出现了一些关于 :Symbol(s) not found for architecture arm64 的报错,花了一点时间找出了问题的解决,下面记录一下:
1、由于在 iPhone5s 等 arm64 设备运行的时候,Build Settings 中的 Architectures 默认都是:Standard architectures (including 64-bit) (ARMv7,armv7s,arm64)
2、测试例子中,所有的依赖库都是使用 CocoaPods 下载的,但是 CocoaPods 下的所有项目是不支持 64 位的。在 stack overflow :点击打开链接其中有一个回答中提到:The issue is that the cocoapods have not been built for arm64 architecture yet thus they cannot be linked when you build them.
3、那么就需要对CocoaPods pod 下来的 target 的 architectures 设置为:Standard architectures (ARMv7,armv7s)
4、还有一点需要注意的是自己 project 的 target 也是要设置为:Standard architectures (ARMv7,armv7s)Standard architectures (ARMv7,armv7s)
5、对于FRP 和 Pods 两个 PROJECT 下的 Architectures 设置选择 arm7 或者 arm64 都可以。
6、最后,其实解决的方案总结为一点,项目中所有 Architectures 都设置为 arm7 的就可以了,反正是向下兼容,这样就不用考虑这么多了。