LoginSignup
27
20

More than 3 years have passed since last update.

Flutterで作ったアプリをストア公開するときの手間取った話

Last updated at Posted at 2019-06-13

先日初めてFlutterで作成したアプリをiOSおよびAndroidのストアに公開しました.公開手順は公式ドキュメントに従っていれば基本的に問題はないですが,手間取ったところをまとめました.

なお,私は日頃からiOSアプリをネイティブで開発しており,ストア公開の経験もあります.Androidアプリに関しては数年に一度作成して遊ぶ程度で,Playストアに公開は今回が初めてです.

今回のFlutterの環境は以下の通りです.

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale
    ja-JP)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.34.0)
[✓] Connected device (1 available)

• No issues found!

追記

  • 2019/07/11 Andoridアプリの64bitビルドに関して

Androidアプリ

公式ドキュメント

Proguard

ソースコード難読化のProguardで,一部のサードライブラリが機能しなくなりました.そこで,そのサードライブラリを対象から外しました.サードライブラリのパッケージはそのドキュメントを見るか,実際にAndroidプロジェクトを開けば,分かりました.

-keep class hogehoge.piyopiyo.**  { *; }

この確認作業はリリースビルドと実機インストールで念入りに確認しました.

$ flutter build apk --release
$ flutter install -d {device_id}

なお,device_id は flutter install をオプションなしで打てば一覧表示されます.

Androidアプリの64bit対応

ストアに提出するには,32bitおよび64bitに対応する必要があります.推奨される app bundle (aab) でビルドするコマンドが用意されています.

$ flutter build appbundle

しかしながら,現状 (ver 1.5.4-hotfix.2, channel stable) だと,そのaabには64bitは含まれていません.すでにissueが立っており,ver 1.7 で対応予定だそうです.なお,dev channel に切り替えて使ってみましたが,Playストアからダウンロードするとクラッシュする不具合がまだ残っていました.

そこで,32bitおよび64bitそれぞれのapkを作成して,それら2つで申請しました.

(0) android/app/build.gradleに各アーキテクチャの設定を加える.

defaultConfig {
   ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}

(1) 32bitアプリをビルドする

$ flutter build apk --release --target-platform=android-arm

(2) ビルドした 32bit アプリを Google Play Console にアップロードする
(3) versionCode を増やす
(4) 64bit アプリをビルドする

$ flutter build apk --release --target-platform=android-arm64

(5) ビルドした 64bit アプリを Google Play Console にアップロードする

Play Consoleにアップロードすると「aabを使って」など警告が表示されますが,仕方ないのでそのままで公開しました.

Flutter 1.7が公開されました (追記, 2019/07/11)

aabビルドの64bit問題を解決した Flutter 1.7 が公開されました.上記のように32,64bitそれぞれをビルドしなくても,aab1つで解決すると思います(自作アプリのアップデート予定が直近でないので未確認です,報告まで).

iOS アプリ

公式ドキュメント

基本的にFlutterのビルドコマンドを行うだけで,後は通常のiOSアプリのリリース作業と同じです.

 $ flutter build ios

以下を忘れずに

  • バンドルIDや表示名を書き換える
  • 証明書関連を設定する

なお,アーカイブ時に結構の数の warning が表示されてましたが,アプリ審査は無事に通りました.


参照

27
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
20