Flutter ビルド

Flutter ビルド
Flutter
2019年11月11日 更新

環境分け

開発の規模によって、DEV環境STG環境PROD環境分けること。

お主に参考できたのは

iOSの方は:

Flutterで環境ごとにビルド設定を切り替える — iOS編

FlutterでFlavorを使って環境ごとに切り替えてビルドする(debug/stg/prod)

です。

Androidの設定はすぐできた印象です、参考になったのはこちら:

flutterで本番/ステージング/開発を切り替える

です。


ビルド手順

アプリ開発なので、最後は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出来上がります。