美文网首页
[Xcode 12, building for iOS Simu

[Xcode 12, building for iOS Simu

作者: 指尖猿 | 来源:发表于2021-03-02 15:45 被阅读0次
    背景: 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解决问题的,图如下。

    截屏2021-03-09 下午2.21.03.png

    相关文章

      网友评论

          本文标题:[Xcode 12, building for iOS Simu

          本文链接:https://www.haomeiwen.com/subject/bhcxqltx.html