dyld: Library not loaded: @rpath/App.framework/App

macos 12.2.1 , iOS flutter混合工程,启动崩溃,报错 dyld: Library not loaded: @rpath/App.framework/App

[Add2App IOS] Instant crash on MacOS12.0.1 xcode13.1 Library not loaded: @rpath/App.framework/App #92896

解决方法

  1. 卸载cocoapods
 sudo gem uninstall -n /usr/local/bin cocoapods cocoapods-core cocoapods-deintegrate cocoapods-downloader cocoapods-plugins cocoapods-search cocoapods-stats cocoapods-trunk cocoapods-try
  1. 卸载 ruby-macho
sudo gem uninstall ruby-macho
  1. 重新安装cocoapods
sudo gem install -n /usr/local/bin cocoapods

以上的主要目的是 ruby-macho 升级到2.5.0 以上。

有的人升级cocoapods 就可以,有的不行。不行的是因为升级cocoapods的时,ruby-macho 没有对应升级。

解决过程以及原因

我们的flutter版本是2.0.5 ,mac 系统升级到macos 12 之后,有的小伙伴会启动崩溃,报上面的错。

对于这个问题网上有很多解决版本:

  1. 升级flutter 到最新

  2. 升级cocoaPods
    https://juejin.cn/post/7036177470541807624

  3. 加脚本
    https://blog.csdn.net/FlyingKuiKui/article/details/123728932

除了上面提到的方法,还升级了gem,但是还是不行。
https://blog.csdn.net/lzh253985690/article/details/104279885

具体原因和解决办法在这个issues中有人指出了
https://github.com/flutter/flutter/issues/92896#issuecomment-967120990
这个有人提到

Same problem here on macOS 12.0.1 & Xcode 13.1.

After some investigations, I found that when building on macOS Monterey, two new load commands (`LC_DYLD_EXPORTS_TRIE` & `LD_DYLD_CHAINED_FIXUPS`) are inserted into `App.framework`, which makes the old version of `ruby-macho` not so happy.

Problem disappeared after upgrading `cocoapods` to 1.11.0 and `ruby-macho` to 2.5.1\. See [CocoaPods/CocoaPods#10390](https://github.com/CocoaPods/CocoaPods/issues/10390)

简单说就是由于 ruby-macho 版本不对,导致少了下图红框中的代码


image.png

解决办法就是 升级cocoapodsto 1.11.0 andruby-machoto 2.5.1

原本想直接安装 ruby-macho 2.5.1

ruby-macho 最新版本是 3.0
https://github.com/Homebrew/ruby-macho/releases

尝试之后,还是没能安装ruby-macho 2.5.1

下面这个命令只能安装最新的ruby-macho ,不能指定版本

gem install ruby-macho

把ruby-macho 2.5.1 下载下来之后,直接放到对应的目录,还是不行。

应该有直接安装的方法。

最终通过上面的方法安装了ruby-macho 2.5.1

你可能感兴趣的:(dyld: Library not loaded: @rpath/App.framework/App)