M1 macでpod installができない。sudo gem install ffiをしても治らない(rbenvが原因)
環境
- 2021/01/26時点
- M1チップのMacBook airを使用
- ターミナルは基本的にrosettaを利用しないでarm64を利用
-
この記事に乗っ取ってhomebrewをarmとintelを使い分けられるようにして、homebrewを利用してrbenvをインストール
- rbenvで2.7.2をインストールしてglobalに設定
- rbenvで入れたrubyにcocoapodsをインストール
起きている問題
pod installl
が動かない。
→原因としてはこのissueで語られていること
上記記事にある解決策を試しても解決しない
記事の中では一旦ffiをアンインストールしてターミナルをrosettaを利用してintelに切り替えて、↓をしろと言っている
sudo gem install ffi
日本語の参考記事→M1チップ(Apple Silicon)搭載のMacでCocoaPodsが動かない時の対応
原因
- cocoapodsのインストール先をrbenvでインストールしたrubyにしていたことが原因。issueの中でも以下のようにコメントがある
For anyone using a non-system ruby with rbenv and facing issues with ffi - switching to the system ruby (atleast locally in the project directory) and following the above steps helped me
解決策
- xcodeを利用するディレクトリだけsystemのrubyを使用するように設定
- ターミナルはrosettaを利用してintelにする
- systemのrubyに対してcocoapodsをインストール
arch -x86_64 sudo gem install cocoapods
- 同様にffiをインストール
arch -x86_64 sudo gem install ffi
- あとは普通に
pod install
すれば動くはず。ちなみに一度intelで上の工程を行えばpod install
するときはarmでも動く
- ※追記(2021/02/05):やはりarmでは動かなかった。
pod install
するときには、この記事と同様に設定している場合はswitch-arch
でintelに切り替えてから行う必要がある。
- ちなみに、今のterminalがarmかintelかを判断をするには
uname -m
と実行するとわかる
感想
- なぜrbenvで入れたcocoapodsが動かないのか?
pod installl
が動かない。
→原因としてはこのissueで語られていること上記記事にある解決策を試しても解決しない
記事の中では一旦ffiをアンインストールしてターミナルをrosettaを利用してintelに切り替えて、↓をしろと言っている
sudo gem install ffi
日本語の参考記事→M1チップ(Apple Silicon)搭載のMacでCocoaPodsが動かない時の対応
原因
- cocoapodsのインストール先をrbenvでインストールしたrubyにしていたことが原因。issueの中でも以下のようにコメントがある
For anyone using a non-system ruby with rbenv and facing issues with ffi - switching to the system ruby (atleast locally in the project directory) and following the above steps helped me
解決策
- xcodeを利用するディレクトリだけsystemのrubyを使用するように設定
- ターミナルはrosettaを利用してintelにする
- systemのrubyに対してcocoapodsをインストール
arch -x86_64 sudo gem install cocoapods
- 同様にffiをインストール
arch -x86_64 sudo gem install ffi
- あとは普通に
pod install
すれば動くはず。ちなみに一度intelで上の工程を行えばpod install
するときはarmでも動く
- ※追記(2021/02/05):やはりarmでは動かなかった。
pod install
するときには、この記事と同様に設定している場合はswitch-arch
でintelに切り替えてから行う必要がある。
- ちなみに、今のterminalがarmかintelかを判断をするには
uname -m
と実行するとわかる
感想
- なぜrbenvで入れたcocoapodsが動かないのか?
For anyone using a non-system ruby with rbenv and facing issues with ffi - switching to the system ruby (atleast locally in the project directory) and following the above steps helped me
- xcodeを利用するディレクトリだけsystemのrubyを使用するように設定
- ターミナルはrosettaを利用してintelにする
- systemのrubyに対してcocoapodsをインストール
arch -x86_64 sudo gem install cocoapods
- 同様にffiをインストール
arch -x86_64 sudo gem install ffi
- あとは普通に
pod install
すれば動くはず。ちなみに一度intelで上の工程を行えばpod install
するときはarmでも動く- ※追記(2021/02/05):やはりarmでは動かなかった。
pod install
するときには、この記事と同様に設定している場合はswitch-arch
でintelに切り替えてから行う必要がある。 - ちなみに、今のterminalがarmかintelかを判断をするには
uname -m
と実行するとわかる
- ※追記(2021/02/05):やはりarmでは動かなかった。
感想
- なぜrbenvで入れたcocoapodsが動かないのか?
→ffiというライブラリがarmに対応していないのが原因らしい。rbenvはarmに対応しているため、arm版のrbenvでいれたrubyはopt/homebrew/
配下にインストールされる。そのため、そこにcocoapodsを入れると動かないのか? よくわからない
- systemのrubyにcocoapods入れるのがちょっと気持ち悪い。環境汚したくないとか考えると、できれば全部rbenvの中だけ完結するようにしたい。
→ほとんどの記事でpodの操作の時にはsudo
をつけているから、そもそもcocoapodsはsysytemのrubyに入れるのが常識だったりする?? (rbenvで入れたrubyにインストールするときはsudo
が必要ない)
- iOS開発する時にrubyをsysytemの切り替えるの忘れそう
Author And Source
この問題について(M1 macでpod installができない。sudo gem install ffiをしても治らない(rbenvが原因)), 我々は、より多くの情報をここで見つけました https://qiita.com/0ba/items/7c1463a156cef7db67c4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .