19
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Flutterで初めてのリリースビルド

Last updated at Posted at 2019-10-21

#Flutter アプリをグーグルストアに公開する
今回は公式ドキュメントを見てもわからなかったのでリサーチしたところ、何とか公開までたどり着きました。

公式ドキュメント

#準備
git でバージョン管理をしているならブランチをrelease1.0.0に移動させましょう。特に重要ではありませんがしていると便利です。

##アプリアイコンを作成
今回はflutter_launcher_iconsというpackageを使用してアイコンを作成します。このパッケージはandroid用アイコンのpngファイルを作成して自動であるべきディレクトリーに配置してくれる便利アプリです。このパッケージを使用するために3つのpngファイルを用意します。

アイコンはillustratorなどで1024 × 1024で作りましょう

##参照リンク
参照リンク
ドキュメンテーション

1.前面
foreground.png
2.背面
background.png
3.アイコンの全体
icon.png

三つのアイコンを/assets/icon/に移動する
それぞれをbackground.png, foreground.png, icon.pngと名付ける

##アプリアイコンを宣言

pubspec.yaml
dev_dependencies:

  flutter_launcher_icons: ^0.7.0


//改行している箇所に注意
//flutter pub get
flutter_icons:
  ios: true
  android: true
  image_path_ios: "assets/icon/icon.png"
  image_path_android: "assets/icon/icon.png"
  adaptive_icon_background: "assets/icon/background.png"
  adaptive_icon_foreground: "assets/icon/foreground.png"

android/app階層に作成する

key.properties
storePassword=<storepassword>
keyPassword=<keyPasword>
keyAlias=<aliaName>
storeFile=<place you saved your key.jks in local>
local.properties
sdk.dir=C:\\Users\\YOURNAME\\AppData\\Local\\Android\\sdk
flutter.sdk=C:\\flutter <-flutterSDKの場所
flutter.buildMode=release
flutter.versionName=1.0.0
flutter.versionCode=1

この部分を削除して

android/app/build.gradle
android {

こちらのコードを追加する。

android/app/build.gradle
   def keystoreProperties = new Properties()
   def keystorePropertiesFile = rootProject.file('key.properties')
   if (keystorePropertiesFile.exists()) {
       keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
   }

   android {

この部分を削除して、、

android/app/build.gradle
   buildTypes {
       release {
           // TODO: Add your own signing config for the release build.
           // Signing with the debug keys for now,
           // so `flutter run --release` works.
           signingConfig signingConfigs.debug
       }
   }

こちらのコードを挿入する

android/app/build.gradle
   signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile file(keystoreProperties['storeFile'])
           storePassword keystoreProperties['storePassword']
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }

app階層に新しいproguard-rules.proファイルを追加する
内容はこちらをコピペしてください

android/app/proguard-rules.pro
## Flutter wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }
-dontwarn io.flutter.embedding.**

!!注意!!
公式ではここでpro fileを有効にしろと書かれていますかAPKのビルドに失敗するので無効にします

公式では

/android/app/build.gradle
android {

    ...

    buildTypes {

        release {

            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }
}

実際にはこう

android/app/build.gradle
android {

    ...

    buildTypes {

        release {

            signingConfig signingConfigs.release

            minifyEnabled false
            useProguard false

        }
    }
}

このコマンドを実行するとandroidディレクトリー階層にbuildファイルが作成されます

flutter build bundle

このコマンドで/build/app/outputs/apk/release/にapk fileが生成されるのでそれをgoogleコンソールにアップロードすると完了です。

flutter build apk

実機にrelease build版アプリをインストールする場合は下記のコマンドをじっこうする(USBなどで実機が接続されていることを確認しましょう)

flutter install

エミュレーターの場合はinstall failedとなります。ただいま原因究明中です。

次回にアップデートを行う際にはpubspec.yamlファイルでflutterのversionを変更することでapkのバージョンを変更できます。build apkコマンドを行う前に変更しましょう。

pubspec.yaml
version: 1.0.0+2

#リンク(参照元)

参照元

#まとめ
ちなみにこちらが私の公開したアプリです。良ければ使ってみてください
Shot Spinner: for Android
Shot Spinner: for iOS

#公開したアプリ(補足)
##Shot SpinnerScreenshot_1571429697.png
Screenshot_1571429685.png
Screenshot_1571429692.png

#Flutter関連記事
Flutter 入門 -textFieldを開いたときにkeyboardを表示しない-

Flutterでtodo Listを作ってみた -初心者必見-
flutterでQRコードリーダーを作ってみた

ルーレットアプリ作ってみた

19
16
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
19
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?