Flutter ビルド
Flutter
2019年11月11日 更新環境分け
開発の規模によって、DEV環境
、STG環境
、PROD環境
分けること。
お主に参考できたのは
iOSの方は:
Flutterで環境ごとにビルド設定を切り替える — iOS編
と
FlutterでFlavorを使って環境ごとに切り替えてビルドする(debug/stg/prod)
です。
Androidの設定はすぐできた印象です、参考になったのはこちら:
です。
ビルド手順
アプリ開発なので、最後はAndroidでは.apk
バイナリー、iOSは.ipa
バイナリーを作るのはゴールです。
flutterのビルドの流れは二つ分けています、ここはリリースモードだけにしたいと思います。(製品はこちらに関わりますから、重要です。
①DartコードをDart-to-JavaScriptというコンパイラーで最適化します(結局JSかw)
②ビルドしたものはネイティブ共通の.soのライブラリーとしてを作成(CrossPlatform)
③Android(bin)やiOS(.app)の実行可能なファイルになります(コードサインとか)
④バイナリーを圧縮し、各ストア指定のサイン済み のファイルを作る(ファイルサインとか)
⑤リリース作業
Android(.apk)
同じくGoogle製のため、一発でビルド可能になりますね。
$ flutter build apk(appbundle) --release --flavor [flavor名前] -t [dartのメインファイルパス] --target-platform [android-arm,android-arm64の中を選択]
補足: split-per-abi
:android9か10から機能によってバイナリを分散してDLできるようになります。
成功したら、産物はandroid/build
の中にapk出来上がります。
iOS(.ipa)
iOSビルドはiPAの仕様によって、段階分けてビルドを行います。
flutter build ios --release --flavor [flavor名前] -t [dartのメインファイルパス]
----------------------------------------------------------------
できた実行可能な.appファイルはiosフォルダにいます。
ここからはflutterと関係なくなりました。
----------------------------------------------------------------
cd ios
xcodebuild -workspace Runner.xcworkspace
-scheme [Xcode設定のscheme名前]
-sdk iphoneos # もちろん実機です、シュミレーターでやりたい場合、指定できます
archive -archivePath $PWD/build/Runner.xcarchive
xcodebuild -allowProvisioningUpdates -exportArchive -archivePath $PWD/build/Runner.xcarchive -exportOptionsPlist [exportOptions.plistファイルパス] -exportPath $PWD/build/Runner.ipa
成功したら、産物はios/build
の中にipa出来上がります。