Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Fluttrify

Fluttrify is a Dart CLI tool that simplifies changing package names in Flutter projects. When you need to rename your app's package identifier — say from com.example.app to com.yourcompany.app — Fluttrify automates the tedious process of updating all the necessary files on both the Android and iOS platforms.
Fluttrify edits platform configuration files, not your Dart source. References to the old package name inside your Dart code are left untouched — update those yourself if you have any.

What it does

Android renaming
Updates the package attribute in AndroidManifest.xml (main, debug, and profile variants), the applicationId in build.gradle, and the package declaration in MainActivity.java/kt.
iOS renaming
Updates the CFBundleIdentifier in Info.plist so your iOS bundle identifier matches the new package name.
File reorganization
Automatically moves MainActivity into the correct directory structure derived from the new package name — no manual folder shuffling.
Platform targeting
Rename both platforms in one pass (the default), or target only Android or only iOS with the --platform flag.

How it works

For Android, Fluttrify performs four operations in sequence:
  1. Updates the package attribute in all AndroidManifest.xml files
  2. Updates applicationId in build.gradle
  3. Updates the package declaration in MainActivity.java/kt
  4. Moves MainActivity to the correct directory structure based on the new package name
For iOS, it updates the CFBundleIdentifier in Info.plist. The whole run ships with a progress animation so you can watch each file get processed.

Requirements

You need the Dart SDK 3.6.0 or higher and a Flutter project with the standard directory structure.
Two known limitations: the tool assumes a standard Flutter project layout, and if your iOS CFBundleIdentifier uses a variable such as $(PRODUCT_BUNDLE_IDENTIFIER), that value requires a manual update — Fluttrify won't resolve build-setting variables.

Install

The recommended path is a global activation from pub.dev:
dart pub global activate fluttrify
Make sure your Dart SDK's bin directory is in your system's PATH environment variable, otherwise the fluttrify executable won't be found after activation.
Prefer building from source? Clone the repository and activate it by path:
# Clone the repository git clone https://github.com/aliarain/fluttrify.git # Navigate to the project directory cd fluttrify # Get dependencies dart pub get # Activate the package globally dart pub global activate --source path .

Rename a package

  1. Navigate to your Flutter project
    Fluttrify operates on the project in the current directory, so start from your project root:
    cd path/to/your/flutter_project
  2. Run Fluttrify with the new package name
    Pass the new package identifier as the only argument — by default both Android and iOS are updated:
    fluttrify com.company.hello
  3. Watch the changes land
    Fluttrify reports each file as it's processed:
    Starting package rename process... Processing... 🚀 | Updating AndroidManifest.xml for main (Current package: com.example.myapp) Updating AndroidManifest.xml for debug (Current package: com.example.myapp) Updating AndroidManifest.xml for profile (Current package: com.example.myapp) Updating build.gradle (Current package: com.example.myapp) Updating MainActivity.java (Current package: com.example.myapp) Updated and moved MainActivity.java Updating Info.plist (Current package: com.example.myapp) Package renaming complete! 🎉
  4. Clean and rebuild
    After the rename, clean the project so stale build artifacts don't reference the old identifier:
    flutter clean flutter pub get

Options

The CLI accepts two flags alongside the package name:
-h, --help Show usage information -p, --platform Platform to rename: android, ios, or both (default: both)

Examples

# Rename package for both platforms fluttrify com.company.hello # Rename package for Android only fluttrify com.company.hello --platform=android # Rename package for iOS only fluttrify com.company.hello -p ios
Use a platform-specific run when your iOS bundle identifier is managed elsewhere (for example through Xcode build settings) — rename Android with -p android and handle iOS manually.

What gets edited

On Android, a run turns com.example.myapp into com.company.hello across the manifest, Gradle config, and activity:
# In android/app/src/main/AndroidManifest.xml - <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> + <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.hello"> # In android/app/build.gradle - applicationId "com.example.myapp" + applicationId "com.company.hello" # In MainActivity.java/kt - package com.example.myapp; + package com.company.hello;
MainActivity is also moved to match the new package path:
Before: android/app/src/main/java/com/example/myapp/MainActivity.java After: android/app/src/main/java/com/company/hello/MainActivity.java
On iOS, the bundle identifier in Info.plist is rewritten:
# In ios/Runner/Info.plist <key>CFBundleIdentifier</key> - <string>com.example.myapp</string> + <string>com.company.hello</string>
Fluttrify does not update package-name references inside your Dart code, and it can't rewrite an iOS identifier that uses a variable like $(PRODUCT_BUNDLE_IDENTIFIER) — both of those remain manual steps.
Fluttrify is MIT-licensed and developed on GitHub.

For AI agents

Copy this block into Cursor, Claude Code, or any coding agent to run a package rename correctly:
# fluttrify — agent integration instructions Rename this Flutter app's Android package name and iOS bundle identifier using the fluttrify CLI (pub.dev). Requires Dart SDK 3.6.0+ and a standard Flutter project layout. Follow these rules exactly: 1. Install globally: dart pub global activate fluttrify (ensure the Dart SDK bin directory is on PATH so the `fluttrify` executable resolves). 2. Run from the Flutter project root — the tool operates on the current directory: cd path/to/flutter_project 3. Rename with the new identifier as the only argument (updates both platforms by default): fluttrify com.company.hello 4. To target one platform, use -p/--platform: fluttrify com.company.hello --platform=android fluttrify com.company.hello -p ios Use -p android when the iOS bundle identifier is managed through Xcode build settings. 5. What it edits: AndroidManifest.xml package attribute (main, debug, profile), applicationId in build.gradle, the package declaration in MainActivity.java/kt (and moves MainActivity to the new package directory), and CFBundleIdentifier in ios/Runner/Info.plist. 6. What it does NOT edit: package-name references inside Dart source code, and an iOS CFBundleIdentifier set to a variable like $(PRODUCT_BUNDLE_IDENTIFIER) — update those manually. 7. After the rename, always run: flutter clean && flutter pub get so stale build artifacts don't reference the old identifier. Docs: https://docs.aliarain.com/fluttrify
Agents can also read this page as plain markdown — every page on this site is available to LLMs in raw form via the docs' llms.txt index.