flutter_rebrand_kit 1.3.0
flutter_rebrand_kit: ^1.3.0 copied to clipboard
An all-in-one CLI tool to rebrand Flutter apps, update package IDs, generate launcher & notification icons, native splash screens, and Play Store graphics.
Changelog #
1.3.0 #
Added #
- Dark mode splash:
splash_dark_imageandsplash_dark_colorfor Android (values-night,drawable-night,values-night-v31), iOS (darkLaunchImageappearances and a light/darkLaunchBackgroundcolor asset) and Web (prefers-color-scheme). - Branding footer:
splash_branding_imageandsplash_branding_dark_imagefor Android (200x80 dp density assets,windowSplashScreenBrandingImage, pre-12launch_background), iOS (BrandingImage.imagesetplus an image view with Auto Layout constraints injected intoLaunchScreen.storyboard) and Web. - Web splash: an overlay injected into
web/index.htmlthat follows the system dark mode, never blocks pointer events and removes itself on theflutter-first-frameevent. Any<body ...>tag is supported, and re-running replaces the previous block. - Linux window icon:
linux/CMakeLists.txtinstalls the generated icon to<bundle>/data/app_icon.pngandmy_application.ccloads it from the executable's folder, so the icon is bundled and found from any working directory. - CLI output: each step shows how long it took, and sub-step lines list the options in use (splash dark mode and branding, launcher icon background and monochrome icon, Play Store banner text).
Fixed #
- Android 12+ in dark mode: a
values-night-v31theme is written (or merged) whenever the project hasvalues-night/styles.xml. Previouslyvalues-nightoutrankedvalues-v31, so the Android 12 splash settings were not applied in dark mode. - Splash logo size: transparent margins are trimmed before sizing, and the logo is fitted to the Android 12 circle by its diagonal instead of a fixed box, so logos with built-in padding are no longer small and wide logos are not clipped.
- iOS launch logo is sized from the visible artwork, scaled correctly for @1x, @2x and @3x.
Changed #
- Without
splash_dark_color, the dark theme keeps the configured splash color (it does not fall back to black). SplashService.generateNativeSplashaccepts optional named arguments for dark mode and branding. Existing calls keep working.
1.2.0 #
Added #
initcommand:dart run flutter_rebrand_kit:rebrand_kit init(ordart run flutter_rebrand_kit:init) creates a commentedrebrand_kit.yaml. An existing file is never overwritten.- Launcher icons for all 6 platforms from one master image: Android, iOS, macOS, Web, Windows and Linux. Platform folders that do not exist are skipped.
- Android round icons: circular legacy
ic_launcher_round.pngplusic_launcher_round.xml.android:icon/android:roundIconare added to<application>when missing. - iOS 18 Dark and Tinted icons (1024 px,
Icon-App-Dark-1024x1024@1x.png,Icon-App-Tinted-1024x1024@1x.png) next to the standard iPhone/iPad icon set. - Windows
.ico: 16, 32, 48 and 256 px frames with transparency, written by a pure-Dart encoder towindows/runner/resources/app_icon.ico. - Linux icon:
linux/runner/assets/app_icon.png(256×256). - Web icons:
web/favicon.png,web/icons/Icon-192.png/Icon-512.pngand maskableIcon-maskable-192.png/Icon-maskable-512.png. - Input validation before any file is modified: package ID, version, hex colors, notification icon name.
- Non-zero exit code when the CLI fails; the launcher icon step reports which platforms were generated.
- Warnings for opaque logos that would turn into solid white squares (themed and notification icons) and for non-square master images.
Fixed #
- Names are escaped per file format. App names containing
&, quotes or<no longer breakInfo.plist,manifest.json, the Windows.rc/main.cppor the Linux runner; non-ASCII names are written as C++ universal character names on Windows. - Windows runner:
window.CreateAndShow(...)is no longer rewritten towindow.Create(...)(broke older templates);InternalNameandOriginalFilenamenow follow the new binary name. - Android package ID:
- only the first
applicationId/namespaceis rewritten (flavors keep theirs), commented-out lines are ignored,applicationId = "…"is supported in Groovy; - the old base package is detected from
namespace/applicationId/ manifest instead of the first file found; - a package such as
com.studio.flutterappis no longer mistaken for Flutter engine code; - unrelated packages are not moved, files are placed by their declared package, debug/profile manifests are updated;
- only the
<application>label changes, activity labels are kept.
- only the first
- iOS / macOS bundle IDs: test targets and extensions are detected from the project instead of a name heuristic, so an ID containing "widget" or "extension" is safe, re-running is idempotent, and the macOS
RunnerTeststarget is no longer collapsed onto the main ID. ic_launcher_backgroundcolor is updated on every run (it used to keep the first value);colors.xmlis edited in place and self-closing<resources/>files are handled.- iOS icon catalog now uses Apple's standard iPhone/iPad entries (including the iPad
@1xslots); staleIcon-App-*files are removed. - Native splash (Android):
drawable-v21/launch_background.xmlis written (it overridesdrawableon API 21+); logo assets are density-specific and sized for the Android 12 splash circle instead of a single oversized image;values-v31/styles.xmlis merged instead of overwritten;splash_colorreplaced reliably. - Native splash (iOS):
splash_coloris applied toLaunchScreen.storyboard; launch images are properly scaled 1x/2x/3x. - No stray
android/orios/folders are created in projects that do not have them. - Non-square, palette, grayscale and 16-bit master images are normalized instead of being stretched or mis-rendered.
- Play Store banner: font size adapts to long names and taglines; non-ASCII text no longer renders as gaps.
Changed #
- Upgrading: if
launcher_iconis set, macOS, Web, Windows and Linux icons are now generated and overwritten too (when those folders exist). Commit before running. - Internal code reorganized into
renamers/,icons/,splash/,marketing/andutils/.
1.1.0 #
Highlights & New Features #
- All-Platform App Renaming: Full support for updating App Name across all 6 platforms (Android, iOS, macOS, Web, Windows, and Linux).
- All-Platform Package ID / Bundle ID Migration: Updates application IDs across Android (Gradle Groovy & KTS), iOS (
project.pbxproj), macOS (AppInfo.xcconfig), Linux (CMakeLists.txt), and Windows (CMakeLists.txt). - Full-Tree Android Code Refactoring: Recursively relocates all Kotlin and Java files, updates
packagestatements across sub-packages, rewrites internal project imports, safely ignores engine files (GeneratedPluginRegistrant.java), and prunes empty directories. - High-Fidelity Notification Engine:
- Renders notification icons at 100% full-canvas scale (
24to96px), preserving fine strokes and delicate line art. - Added optional
notification_icon_nameproperty (defaults toic_notification) to support custom drawable filenames. - Automatically deletes stale default
ic_notification.pngassets when a custom name is configured to prevent APK bloat. - Universal image format support: automatically normalizes 8-bit paletted PNGs, 24-bit RGB, and 32-bit RGBA into a 4-channel buffer.
- Preserves subpixel antialiasing curves without destructive alpha thresholding.
- Renders notification icons at 100% full-canvas scale (
- Android 13+ Themed / Monochromatic Icons: Added Material You dynamic theming support by generating
ic_launcher_monochrome.pngand injecting<monochrome>tags intores/mipmap-anydpi-v26/ic_launcher.xml. - Adaptive Icon Image Backgrounds: Added
launcher_icon_bg_imageproperty to allow custom image textures for Android adaptive backgrounds instead of solid hex colors. - Round Icon Generation: Generates
ic_launcher_round.xmland legacy round mipmap variants for OEM launchers that enforce circular icons. - Native Desktop & Web Metadata:
- Windows: Updates
Runner.rc(FileDescription,ProductName) and window title inmain.cpp. - Linux: Updates both standard window title and GTK HeaderBar title in
linux/runner/my_application.cc. - macOS: Updates
PRODUCT_NAMEandPRODUCT_BUNDLE_IDENTIFIERinAppInfo.xcconfig. - Web: Updates
<title>and mobile meta tags inindex.html, andname/short_nameinmanifest.json.
- Windows: Updates
Edge Cases & Reliability Fixes #
- XML Entity Escaping: Automatically escapes special characters (e.g.,
&to&) inAndroidManifest.xmlto prevent AAPT build failures with titles containing ampersands. - Universal UTF-8 Encoding: Enforces
utf8across all file read/write operations to prevent character corruption on Windows for non-ASCII titles, accents, and German umlauts. - iOS Extension Target Protection: Preserves distinct bundle identifier suffixes for iOS extensions and test targets (
RunnerTests, widgets, share extensions) in Xcode rather than causing code-signing collisions. - Windows Runner Compatibility: Added regex flexibility to match both
window.Createandwindow.CreateAndShowacross different Flutter Windows C++ runner templates.
1.0.1 #
- Added a runnable example in
example/main.dart. - Refined image interpolation with
Interpolation.averageand added an 80% safe-zone margin for Android notification icons. - Added full 20-asset iOS catalog generation to resolve missing icon slots.
1.0.0 #
- Initial stable release.
- Standalone native engine (zero wrapper bloat).
- Launcher icons for Android & iOS.
- Native splash screen wiring for Android 12+ Splash API, Android <12, and iOS Storyboards.
- Monochrome notification silhouette generator with automatic luminance inversion.