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
解決方法
- 卸載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
- 卸載 ruby-macho
sudo gem uninstall ruby-macho
- 重新安裝cocoapods
sudo gem install -n /usr/local/bin cocoapods
以上的主要目的是 ruby-macho 升級到2.5.0 以上。
有的人升級cocoapods 就可以,有的不行。不行的是因為升級cocoapods的時,ruby-macho 沒有對應(yīng)升級。
解決過程以及原因
我們的flutter版本是2.0.5 ,mac 系統(tǒng)升級到macos 12 之后,有的小伙伴會啟動崩潰,報上面的錯。
對于這個問題網(wǎng)上有很多解決版本:
升級flutter 到最新
升級cocoaPods
https://juejin.cn/post/7036177470541807624加腳本
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 版本不對,導(dǎo)致少了下圖紅框中的代碼

解決辦法就是 升級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 下載下來之后,直接放到對應(yīng)的目錄,還是不行。
應(yīng)該有直接安裝的方法。
最終通過上面的方法安裝了ruby-macho 2.5.1