【Flutter】iOSアプリのビルド対応をする(CocoaPodsなど)
概要
主旨
先日、Xcode16を導入したので、いよいよFlutter環境構築においてiOSのビルドに対応してみたので備忘録を記す🛠️
意外かも知れないけど、CocoaPodsをインストールするためのRubyバージョンで苦労した。
rbenv(Rubyバージョンの管理ツール)を導入して使い慣れている人は、すんなり進むであろう💎
FlutterでiOSビルドの環境構築をしたい人は、是非とも参考にしてほしい📝
検証環境
※ 基本的なFlutter開発環境は整っている事を前提とします
Flutter環境構築のこれまで
本記事ではiOSアプリのビルドについて掲載している。
それ以前に、Flutter環境構築のこれまでしてきたこと(Androidなど)については、以下の記事を参考にして欲しい。
●Flutterのインストール
●FlutterのAndroidビルド対応
●Homebrewのインストール
Flutter Doctor
FlutterでiOSアプリ用のビルドを出来るようにしましょう。
$ flutter doctor
Flutter Doctor で環境診断します
1.DEVELOPER_DIRの指定 / ビルド開始
2.CocoaPodsのインストール
の2点が必要と表示されています。
これらの対応をしていきましょう。
DEVELOPER_DIRの指定 / ビルド開始
DEVELOPER_DIRの指定
✗ Xcode installation is incomplete; a full installation is necessary for iOS
and macOS development.
Download at: https://developer.apple.com/xcode/
Or install Xcode via the App Store.
Once installed, run:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
これをGoogle翻訳で日本語に訳すと
のようになります。
とは言えXcodeは最新のをインストール済みなので、後は表示通り、コマンドを打っていきましょう。
●DEVELOPER_DIRの確認
$ xcode-select -p
「DEVELOPER_DIR」の設定を確認
これですね、最近のHomebrewはインストールすると「Command Line Tools for Xcode」まで勝手にインストールされて、その際にパスが変な風に設定されてしまいます。
よって、以下のように修正します
●DEVELOPER_DIRの設定
修正コマンドは以下の通り
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
パスを修正します。
(後は念のために「xcode-select -p」で確認すると良いでしょう)
ビルド開始
$ sudo xcodebuild -runFirstLaunch
ビルド開始実行のコマンドを打ってみます
特に何も出力などされませんでした。
Xcodeを起動し、さらにシュミレーターは立ち上げている最中だったからかも知れません。
再度、Flutter Doctor で確認。
何はともあれ、残すはCocoaPodsのみとなりました。
CocoaPods
CocoaPods - 失敗編
CocoaPodsに着手しましょう。
Flutter Doctorでは以下のように表示されてます。
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin
code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install see
https://guides.cocoapods.org/using/getting-started.html#installation for
instructions.
公式を見ながら対応します
●CocoaPodsのインストール
$ sudo gem install cocoapods
公式に沿ってコマンドを入力します
以下のようにエラーが出る
CocoaPodsをインストールするにはRubyバージョンは 2.7.0 以上必要
と言う事なので、Rubyを最新バージョンにします。
Ruby - バージョンを確認
●Rubyのバージョンアップ
・現在のRubyバージョンの確認
$ ruby -v
Rubyのバージョンを確認
M3 Mac にプリインストールされているRubyは 2.6.20p210 なので2.7.0以上にする必要がある。
Ruby - rbenvのインストール
・rbenvのインストール
「rbenv」はRubyバージョンの管理ツールです。
まずは、これをインストールします。
$ brew -v
Homebrewはインストール済みとする
(インストールされていない場合は各自インストールしてください)
$ rbenv -v
一応、rbenvがインストール済みか確認。初期はこのようにインストールされていない
$ brew install rbenv
rbenvをインストール
Ruby - インストール可能一覧の表示
$ rbenv install -l
rbenvよりインストール可能な、Rubyバージョンの一覧を表示する
現時点(2024年9月26日時点)では3.3.5が最新
Ruby - バージョン指定してインストール
$ rbenv install 3.3.5
今回は 3.3.5 をインストールしたいと思います
Ruby - 環境変数の設定
$ rbenv versions
インストールされているRubyのバージョンを確認
「*」(アスタリスク)が付いているのが「現在」のバージョンです
●Rubyバージョンの切り替え
環境変数の追記からしたいと思います
$ export PATH="$PATH:/Users/macbook/.rbenv/bin"
$ eval "$(rbenv init -)"
※ macbookの部分はユーザー名によって違います
を打つだけでも一時的に変わりますが、ターミナルを再起動したら、元に戻ってしまうので
~/.zshrc に追記します
$ echo "export PATH=\"\$PATH:/Users/macbook/.rbenv/bin\"" >> ~/.zshrc
$ echo "eval \"\$(rbenv init - zsh)\"" >> ~/.zshrc
※ macbookの部分はユーザー名によって違います
.zshrcを直接編集しても良いが、echoで一気にぶち込む。
この場合、中の「"」「$」はバックスラッシュでエスケープシーケンスを用いる(直接開いて編集する場合は不要)
$ cat ~/.zshrc
一応確認
$ . ~/.zshrc
実行をして反映させる(もしくはターミナル再起動)
Ruby - Rubyバージョンの切り替え
●Rubyバージョン切り替え
$ rbenv local 3.3.5
Ruby 3.3.5に切り替えする例
$ rbenv versions
切り替わっているかの確認。
$ ruby -v
Rubyのバージョンの確認
Ruby - rbenvのオプション
紛らわしいのですが
「$ rbenv versions」は、切り替え可能なRubyバージョン一覧
「$ rbenv -v」は、 rbenv自体のバージョン となります。
Ruby - コマンドのまとめ
ごちゃごちゃして分かりづらいので「最新Rubyバージョンにする」コマンドを端的にまとめて見た。
1.Rubyバージョンは 2.7.0 以上必要
CocoaPodsをインストールするにはRubyバージョンは 2.7.0 以上必要。
それ未満の場合、バージョンアップする
2.Homebrewはインストール済みとする
$ brew -v
(インストールされていない場合は各自インストールしてください)
3.rbenvのインストール / Rubyのインストール / バージョン切り替え
# 既にrbenvがインストールされているか確認
$ rbenv -v
# Homebrewでrbenvをインストール
$ brew install rbenv
# rbenvよりインストール可能な、Rubyバージョンの一覧を表示
$ rbenv install -l
# バージョン指定にてRubyをインストール(3.3.5の例)
$ rbenv install 3.3.5
#インストールされているRubyのバージョンを確認
#「*」(アスタリスク)が付いているのが「現在」のバージョンです
$ rbenv versions
# === Rubyバージョンの切り替え ===
# --- 環境変数の設定 ---
# .zshrcを直接編集しても良いが、echoで一気にぶち込む
# 環境変数の追記( macbookの部分はユーザー名によって違う)
$ echo "export PATH=\"\$PATH:/Users/macbook/.rbenv/bin\"" >> ~/.zshrc
$ echo "eval \"\$(rbenv init - zsh)\"" >> ~/.zshrc
# ↑この場合、中の「"」「$」はバックスラッシュでエスケープシーケンスを用いる(直接開いて編集する場合は不要)
# 実行をして反映させる(もしくはターミナル再起動)
$ . ~/.zshrc
# --- Rubyバージョンの切り替え(3.3.5の例) ---
$ rbenv local 3.3.5
# 切り替わっているかの確認
$ ruby -v
CocoaPods - 再度チャレンジ編
Rubyをバージョン3.3.5にしたので、再度チャレンジしたいと思います。
$ sudo gem install cocoapods
フェッチされていき
インストール成功。
新しくなったので「3.5.16 → 3.5.20」にしてねと出ますが、面倒なのでこのまま進めます。
$ pod --version
CocoaPodsのバージョン確認
$ flutter doctor
Flutter Doctor で環境診断します
苦労を重ねて、遂に勝ちとったオールグリーン。
控えめに言って最高です❗️
iOS動作確認
早速、iOSでの動作確認をしましょう。
先日、記事にしたPDFアプリのプロジェクトでビルドしたいと思います📄
・コマンドパレット(Command + Shift + P)を開き「flutter」と入力し、「Flutter: Select Device」を選択。
iOSシュミレーターを選択
実行します。
このようなダイアログが出たので「許可」押下
ビルド成功
PDFビューワーが表示されます
「印刷」ボタン押下🖨️
iOSビルドでの動作確認問題なし📱
著書
【辛島信芳の著書】
IT技術などに興味のある方は、是非ご覧になってください。
この記事が気に入ったらサポートをしてみませんか?