背景: xcode版本:12.5xcode macos版本:11.2.2 (20D80)
遇到问题:用模拟器打开项目报上面如下错误,链接不到第三方,缺少架构arm64架构
[Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
cocoapods
新公司,用了新Mac开发。但是cocoapods集成第三方的时候报错了
LoadError - dlsym(0x7ff521754650, Init_ffi_c): symbol not found - /Library/Ruby/Gems/2.6.0/gems/ffi-1.14.2/lib/ffi_c.bundle
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
查阅资料后是发现M1芯片的锅,顺序执行如下代码,问题得以解决
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
模拟器
早期模拟器只支持x86架构
真机对应arm64等
现在M1芯片,模拟器架构从x86变成了arm架构
而很多静态库对模拟器只有x86架构
导致出现运行在M1芯片里,模拟器是arm架构,导致变异链接时,找不到对应的架构从而报错!
解决方案
1.让第三方支持M1芯片架构
2.自己在xcode debug模式下剔除arm64架构
在Build Settings 搜索Exclude 增加上arm64架构
我是采取方案2解决问题的,图如下。