概要
flutterをbetaチャンネルで使おうとするとarmv7のios端末(iPhone5c以前)だとサポート外で動かない。でもdevチャンネルだとサポートしてくれているみたいなので、ちょいちょい設定したら動いたよ!
詳細
betaチャンネルだと、私の手持ちのiPhone5cだと動かなかった。
CPUアーキテクチャサポート外らしい。
このiOSデバイス一覧表によると、iPhone5cまではarmv7というアーキテクチャで、flutterがサポートしているのはarm64、iPhone5s以降のアーキテクチャ。
しかし、この記事によると、コミットハッシュde332ec時点でarmv7もサポートしてくれているらしい。
そのコミットハッシュにはtag:v0.4.2が切られているので、最新版を追えば対応できそう。
調べてみるとflutterにはchannelと言うものがあって、それを切り替えることでmasterブランチやらbetaブランチやらを終えるらしい
- master: 一番新しくて一番不安定
- dev: masterよりマシでテストされてるが悪いビルドとやらが含まれることがあるよ
- beta: devの中から良いビルドを選んでるよ。この中では一番安定していて推奨だよ
channelの説明の参考https://github.com/flutter/flutter/wiki/Flutter-build-release-channels
先の0.4.2は、現時点(2018/05/16)で、betaには含まれていないけどdevには含まれている
今は2018/05/16
flutterのbetaチャンネルは v0.3.2
flutterのdevチャンネルは v0.4.4
手順
手順1 flutterをdevチャンネルにする
$ cd project_root
$ flutter channel dev
$ flutter upgrade
手順2 xcodeでarm64限定っぽい設定を解除
https://github.com/flutter/engine/wiki/iOS-Builds-Supporting-ARMv7 記事参照を推奨ですが、以下にも書いておきます
- Targets->Runner->BuildSettings->Architecturesをarm64からStandart architectures(よくわからんけどサジェストされるやつ)に変更
- Flutter/AppFrameworkInfo.plist->Required device capabilities keyを削除
- Runner/Info.plist->Required device capabilities keyを削除
手順3 run!
$ flutter run # iphone5cなどが接続されている前提
でうごいたよ!