arcanum_jp’s blog

おっさんの日記

Flutterでアイコンを変更

他のサイトとか見てのメモを残しておきます。(完全に自分メモ)

 

Android, iOSで各種端末、環境で使うアイコンはサイズが色々あります。

 

qiita.com

 

こんなサイズ全部作ってたら日が暮れちまうのでFlutterのライブラリで作ります。

pub.dev

 

上記のサイトから。dev_dependenciesにアイコンのライブラリを宣言して別途flutter_iconsとしてソースを設定します。サイズは1024 * 1024で作成しておきます。

dev_dependencies:
  flutter_launcher_icons: "^0.9.2"

flutter_icons:
  android: "launcher_icon"
  ios: true
  image_path: "assets/icon/icon.png"

 

pub getまたはEditorの[pub get]してから以下のコマンドを実行。

 

flutter pub run flutter_launcher_icons:main

場合により以下のようなエラーが出る

 

flutter pub run flutter_launcher_icons:main

  ════════════════════════════════════════════

     FLUTTER LAUNCHER ICONS (v0.9.1)                               

  ════════════════════════════════════════════

  

 

✓ Successfully generated launcher icons

Unhandled exception:

FormatException: Invalid number (at character 1)

 

^

 

#0      int._handleFormatError (dart:core-patch/integers_patch.dart:129:7)

#1      int.parse (dart:core-patch/integers_patch.dart:55:14)

#2      minSdk (package:flutter_launcher_icons/android.dart:309:18)

#3      createIconsFromConfig (package:flutter_launcher_icons/main.dart:94:47)

#4      createIconsFromArguments (package:flutter_launcher_icons/main.dart:60:7)

#5      main (file:///Users/hosokawashinya/libs/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.9.2/bin/main.dart:6:26)

#6      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:295:32)

#7      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

pub finished with exit code 255

 

 

エラーメッセージで検索すると以下のgithubが引っかかる。

github.com

 

pubspec.ymlの宣言は以下に修正

  flutter_launcher_icons:
    git:
      url: https://github.com/Davenchy/flutter_launcher_icons.git
      ref: fixMinSdkParseFlutter2.8

 

再度flutter pub runする。

 % flutter pub run flutter_launcher_icons:main
  ════════════════════════════════════════════
     FLUTTER LAUNCHER ICONS (v0.9.1)                               
  ════════════════════════════════════════════
  
• Creating default icons Android
• Adding a new Android launcher icon
• Overwriting default iOS launcher icon with new icon

✓ Successfully generated launcher icons

 

 

すると以下のファイルが変更されていたり追加されていたりします。あとは実行してみるとアイコンが変わってる事がわかります。

 

modified:   android/app/src/main/AndroidManifest.xml

modified:   ios/Runner.xcodeproj/project.pbxproj

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png

modified:   ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png

 

android/app/src/main/res/mipmap-hdpi/launcher_icon.png

android/app/src/main/res/mipmap-mdpi/launcher_icon.png

android/app/src/main/res/mipmap-xhdpi/launcher_icon.png

android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png

android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png