[英]Trouble with pod install of hermes engine on m1 mac
我從 0.70.6 開始創建了一個 React-Native 應用程序,經歷了 cocoapods 的悲痛以及蘋果硅芯片 (M2) 開發帶來的一切,並讓它工作並在項目上做了很多工作,然后(在創建一個 GitHub 回購協議后)將它交給一位同事來做一些設計工作(他在 M1 上)......他們的機器上也有很多問題,但最終讓它工作了。 現在,React-Native 0.71.0 已經發布,我完成了升級它的所有步驟並讓它在我的 M2 機器上運行,完全沒有問題,但是在他們的機器上推送並獲取它之后,我無法找到由於無法加載 hermes 引擎而導致 pod 安裝失敗的解決方案,彈出的幾個錯誤是,
[!] Failed to load 'hermes-engine' podspec:
[!] Invalid `hermes-engine.podspec` file: undefined method 'exists?' for FileClass.
我一整天都在尋找這意味着什么(我對 React-Native 還是一般的移動開發相當陌生)並且我已經收集到“存在?” 從 ruby 的某些版本(我在 3.2.0)開始,它已被棄用,但它在我的機器上運行良好,所以我對可能丟失的內容感到困惑。 我一直在使用 chruby 安裝 ruby,唯一的區別是我的機器上有 ruby 版本 2.7.5 和 2.7.7...但是當然,我必須設置一些標志才能實際能夠將它們安裝在我的機器上,我認為它們不會影響我的項目,因為 bundle install 和 pod install 使用 3.2.0 工作。
列出我在這些機器上安裝的所有內容:
2.4.1
1.11.3
3.2.0
18.13.0
14.2
(使用命令行工具)另一個錯誤報告,以防有用:
Command `pod install` failed.
└─ Cause: Failed to load 'hermes-engine' podspec:
[!] Invalid `hermes-engine.podspec` file: undefined method `exists?' for File:Class.
# from /Users/<user>/projects/<app_dir>/node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec:46
# -------------------------------------------
# source[:http] = "file://#{destination_path}"
> elsif File.exists?(hermestag_file) && isInCI
# Pod::UI.puts '[Hermes] Detected that you are on a React Native release branch, building Hermes from source but fetched from tag...'.yellow if Object.const_defined?("Pod::UI")
# -------------------------------------------
如果為了清楚起見我需要包含任何信息,我會根據需要更新這篇文章。
npm cache clean --force && npm install
npx pod-install
以希望讓節點處理事情......同樣的錯誤pod deintegrate
和 pod install... 很可怕,破壞了東西,所以恢復,回到方塊 1我今天早些時候嘗試過的其他事情我不記得了,它們已經回家了,所以我無法訪問我運行的所有命令,但這些是最新鮮的,在我看得更清楚之前,我將嘗試獲取需要設置的標志以安裝舊版本的 ruby 以查看是否有任何作用
最后要提的是,我們最近也買了一台 M1 Mac Mini,我完成了所有步驟以使項目正常運行……最終與其他 M1 一樣,但再次嘗試那些 LD_FLAGS 或不管它是什么,如果那是解決問題的方法,請更新此線程
查看與這些相關的舊問題,人們找到了使用 -x86_64 命令的解決方法,並且自從維護人員發布了支持 arm64 的新版本以來,我已經設法做到了這一點,但如果我在任何地方需要它,那就這樣吧,我會盡我所能
不需要安裝其他版本的 ruby 或任何東西,我通過做一些我發現很臟的事情來安裝 hermes-engine pod ...它提到的那個文件中只有 go 並刪除exists?
所以它只是說exist?
然后我也將 cocoapods 從1.11.3
降級到1.11.2
並查看 .podspec 文件的布局方式,它有條件地加載引擎,首先查看是否已下載到機器上,然后一旦發現沒有,那就是它最終用存在條件遇到這個問題代碼的地方......所以它下載了所有東西並且工作正常並且我能夠在mac mini上構建和運行我的應用程序......但是當在另一台m1機器上嘗試相同的步驟時,我得到了一個非常有用的錯誤—— Oh no, an error occured
……完美,現在我想知道我所做的這些更改是否會影響 M2 pod 命令
如果在接下來的幾天內沒有提供更好的答案,我會假設這是最好的解決方案,直到 react-native 將他們的 ruby 版本升級到3.2.0
,經過更多的挖掘......這是exists?
刪除文件方法
但仍然希望對使用 M1 MacBook 的其他人提供反饋,這些人在穩定版本 React-Native 0.71.0 上遇到這些問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.