はじめに
大抵、公式ページの指示通りに作業したら問題なく環境整備できるのですが、未だにiOS環境作成時に躓くので、備忘録として記事を作成しておきます。
要するに「sudo gem install cocoapod」がダメなのです。MacOSに標準搭載のRubyが古いのが原因と思われます。
HomeBrewをセットアップし「brew install cocoapod」とすればOK
まずはFlutter環境を構築(公式のままでOK)
まずは「git」をインストールします。ターミナルを開き、次のコマンドで整備するのがお勧め。
xcode-select --install
次にVSCode(Visual Studio Code)をインストールし、Flutter環境を構築します。
(Visual Studio Code.app をダウンロードしてから、 Applications フォルダに移動し、起動します。起動後にDockに残すとした方が使い勝手が良い)
gitとVSCodeが無事にインストールできたら、VSCodeを起動して、まずは日本語プラグインを導入、次にFlutterプラグインを導入します。


Flutterプラグインを導入すると、同時にDartプラグインもインストールされます。
次に、VSCodeのコマンドパレット(Ctrl + Shift + P キー)で、flutterと入力し、「Flutter: New Project.」をクリックします。
VS Code で、コンピューター上の Flutter SDK の場所を指定するように求められます。[SDK のダウンロード] を選択します。 Flutter SDK のフォルダーを選択ダイアログが表示されたら、Flutter をインストールする場所を選択します。僕の場合は/home/ユーザ名/development/を指定します。すると/home/ユーザ名/development/flutterというフォルダが作成され、インストールされます。
「Flutter のクローンを作成」をクリックします。
「SDK を PATH に追加」をクリックします。
もしダイアログが閉じてクリックし損ねたら、VSCode左下にある、🔔マーク(通知)をクリックしてください。再びダイアログが表示されます。
全て作業が完了したら、一旦、VSCodeと、ターミナルを全て終了し、開きなおします。「flutter --version」と入力して、バージョンが表示されたらOK
ここからが本題!iOS環境の構築
Xcodeのインストール(これは問題ない)
下記URLから、download⇒xcodeを選択しダウンロード後、Xcode.appをApplicationsフォルダに移動させます。(xcode betaではない)
xcodeのコマンドラインツールを以下のコマンドでインストールします。
sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'
sudo xcodebuild -license
xcodebuild -downloadPlatform iOS
sudo softwareupdate --install-rosetta --agree-to-license
ここまでは公式のそのまんまです。
要注意!! CocoaPodのインストール
これが問題なのです。公式ではCocoaPodは、Rubyスクリプトのgemを用いて「sudo gem install cocoapods」を実行するように記載されていますが、MacOSのRubyが不完全であるため、必ず失敗します!!
(実はCocoaPodのInstallページの最初にも、そのような注意書きがあります)
必ず、次の手順で実行してください。
まずは、「HomeBrew」をインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
次にHomeBrewでcocoapodをインストールします。これが確実です。
brew install cocoapods
すでにCocoaPodがインストールされている場合は、以下のコマンドでcocoapodを最新化しましょう。
pod repo update
iOSシミュレータを起動
open -a Simulator
これで環境整備は終了です。
AndroidのソースをiOSに移植する場合のコツ
基本的には、MacOSのflutterを使って、新規アプリと同じ名前のアプリを作成します。
flutter create --org com.xxxxx newappname
そして、Androidで動作確認したFlutterアプリの/lib, /android, /assets等のみ移植します。特にiosフォルダはコピーしないように注意。
flutter pub add はMacのflutterで実行して、pubspac.yamlもMacOS側で制御した方が安全です。(バージョン番号等は手打ちで移植)
Xcodeでも様々な設定が必要
下記ページ等を参考に、Apple Developerのアカウント作成、(年1万円の会費が発生)、Xcodeで様々な設定を行ってください。
このように大変面倒だけど、AndroidとiOSの両方で同じアプリが動くと感動します!!(そのためにFlutterやってるわけで)
是非ともチャレンジしてみてください。
XcodeでのArchiveが上手くいかない場合のコツ
ターミナルを起動し、flutter crean , flutter pub get, flutter pub run flutter_launcher_icons等を実行します。
次に、Flutterアプリのiosフォルダに移動し、Podfile.lockを削除して、pod install を実行します。
大抵これで大丈夫。