Flutterでアプリを実際に動かしたいが、runしてもchromeアプリさえ表示されない。そのためにCocoaPodsというモジュールのインストールが必要だったのだが、2時間ほど手こずったのでメモを残しておく。
cocoapodsのインストール、でもできない
公式サイトを参考に、CocoaPodsのダウンロードを試みる。
sudo gem install cocoapods
しかし、cocoapodsがインストールできない。
Rubyがダウンロードできていないとダメなようです。
Rubyのインストール
ruby installのサイトを参考にしながらRubyをインストール。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
cd
git clone https://github.com/excid3/asdf.git ~/.asdf
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.zshrc
echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.zshrc
echo 'legacy_version_file = yes' >> ~/.asdfrc
exec $SHELL
ASDFというバージョンマネージャーを使用して、ruby 3.3.0をダウンロード。
asdf install ruby 3.3.0
asdf global ruby 3.3.0
# Update to the latest Rubygems version
gem update --system
ここでエラーが表示されました。
エラーメッセージからyaml.h ファイルが見つからないことが原因で psych 拡張モジュールが構築できていないようです。
yaml ライブラリのインストール
brew install libyaml
以下の通りダウンロードができました。
libyaml 0.2.5 is already installed and up-to-date.
続いてRubyのインストールに再挑戦。
asdf install ruby 3.3.0
正しくダウンロードできているか、Rubyの場所とバージョンを確認。無事ダウンロードできているようです。
which ruby
#=> /Users/username/.asdf/shims/ruby/3.3.0
しかし、rubyのバージョンを確認すると、別のバージョンが表示されました。2年ほど前にダウンロードしていますね。
ruby -v
#=> ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin23]
以下のコマンドで使用するrubyのバージョンを指定します。
rbenv global 3.3.0
rbenvのインストール
まだrbenvをインストールをしていなかったので、インストールと初期化を以下で行いました。
# ダウンロード
brew install rbenv
# 初期化
eval "$(rbenv init -)"
ダウンロードできるRubyのバージョン一覧を表示
rbenv install -l
rbenvでRuby最新版をダウロード
rbenv install 3.3.0
以下のようにバージョンを確認すると、無事最新版の3.3.0に更新されていました。
ruby -v
#=> ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin23]
そして待ちに待ったcocoapodsのインストールへ!
【再挑戦】 cocoapodsのインストール
sudo gem install cocoapods
無事インストールが終了しました。
再びFlutter doctorを実行。
flutter doctor
あれ、まだエラーが、、
# Xcodeのコマンドラインツールをインストールする
sudo xcode-select --install
# Xcodeを選択する
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
# 初回起動時にXcodeが必要な追加のセットアップを行う
sudo xcodebuild -runFirstLaunch
以下のように無事Xcodeとの接続ができました。
flutter doctor
#=>[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
まだMacOSやAndroidでは使用できませんが、runするコットでChrome上では無事表示されるようになりました!
import 'package:flutter/material.dart';
void main() {
const print_helloworld = MaterialApp(
home: Scaffold(
body: Center(
child: Text('Hello, world'),
),
),
);
runApp(print_helloworld);
}
【追記】CocoaPodsが正しくプロジェクトに設定できていない時
1. 上記の方法でcocoapodsをインストール
2. podsの初期化
プロジェクトディレクトリの中のmacosディレクトリへ移動。
cd path/to/your/flutter/project/macos
pod install
3.0 プロジェクトのクリーン
cd path/to/your/flutter/project
flutter clean
flutter pub get
flutter run