Flutter应用品牌重命名插件flutter_app_rebrand的使用

发布于 1周前 作者 songsunli 来自 Flutter

Flutter应用品牌重命名插件flutter_app_rebrand的使用

FARLogo

Flutter App Rebrand

Flutter App Rebrand 自动化地更新Flutter应用程序的品牌信息,包括包名、启动图标和应用名称。它适用于在为新客户、新产品或设计重做时重新品牌化应用程序。

特性

  • 包名更新:自动更新Android和iOS的包名。
  • 启动图标更新:替换应用程序的启动图标,并同时更新两个平台。
  • 应用名称更新:更改设备上显示的应用名称。
  • 目录结构调整:将MainActivity移动到正确的新的包目录并删除旧的文件。
  • iOS产品包标识符更新:更新iOS的产品包标识符(Runner.xcodeproj)。

它做了什么?

  • ✅ 更新AndroidManifest.xmlbuild.gradle和Java及Kotlin中的MainActivity
  • ✅ 将MainActivity移动到新的包目录结构中并删除旧的文件
  • ✅ 生成并更新旧的ic_launcher图标为新的图标
  • ✅ 更新iOS中的产品包标识符(Runner.xcodeproj
  • ✅ 生成并更新AppIcons和ImageSets

它是如何工作的

此插件使用一个配置文件(rebrand.json)来自动化地对您的Flutter应用程序应用所有必要的更改。一旦配置文件设置完成,重新品牌化的过程就可以顺利进行,而无需手动编辑每个平台特定的文件。

配置文件 (rebrand.json)

在您的Flutter项目的根目录下创建一个名为rebrand.json的文件。该文件应包含以下键及其有效值:

  • packageName: 新的包名(例如,com.newcompany.newapp)。
  • launcherIconPath: 新启动图标的路径(例如,assets/icons/new_launcher_icon.png)。
  • appName: 新的应用程序名称(例如,NewApp)。

示例 rebrand.json

{
  "packageName": "com.newcompany.newapp",
  "launcherIconPath": "assets/icons/new_launcher_icon.png",
  "appName": "NewApp"
}

如何使用

在您的pubspec.yaml文件中的dev_dependencies:部分添加flutter_app_rebrand

dev_dependencies: 
  flutter_app_rebrand: ^1.0.0

或者运行以下命令:

flutter pub add -d flutter_app_rebrand

更新依赖项:

flutter pub get

运行以下命令以更改两个平台的包配置:

dart run flutter_app_rebrand:main rebrand.json

其中rebrand.json是包含新的包名、新启动图标路径和更新后应用名称的JSON文件。

YouTube视频指南

要了解如何使用Flutter App Rebrand的分步视频指南,请观看以下YouTube视频:

Watch the video

元数据

本项目采用MIT许可分发。

贡献

  1. 分叉仓库:(https://github.com/sarj33t/flutter_app_rebrand/fork)
  2. 创建一个新的功能分支 (git checkout -b feature/your-feature-name)
  3. 提交带有描述性消息的更改 (git commit -am 'Add new feature: your-feature-name')
  4. 推送到分支 (git push origin feature/your-feature-name)
  5. 打开一个拉取请求并提交审核。

支持

如果您觉得我的工作有用并想支持我,您可以请我喝杯咖啡!

Buy Me A Coffee

示例代码

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // 这个小部件是您的应用的根节点。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const Text(
              '您已经按下了按钮次数:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: '增加',
        child: const Icon(Icons.add),
      ),
    );
  }
}

更多关于Flutter应用品牌重命名插件flutter_app_rebrand的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用品牌重命名插件flutter_app_rebrand的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用 flutter_app_rebrand 插件在 Flutter 应用中进行品牌重命名的代码示例。这个插件允许你在不重新编译应用的情况下更改应用的名称、图标以及其他品牌相关的属性。

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 flutter_app_rebrand 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_app_rebrand: ^最新版本号  # 请替换为实际最新版本号

然后运行 flutter pub get 来获取依赖。

2. 初始化插件

在你的应用的主入口文件(通常是 main.dart)中初始化插件:

import 'package:flutter/material.dart';
import 'package:flutter_app_rebrand/flutter_app_rebrand.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化插件
    FlutterAppRebrand.instance.init(context);
    
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter App Rebrand Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () {
                // 更改应用名称和图标
                FlutterAppRebrand.instance.setAppName("NewAppName");
                FlutterAppRebrand.instance.setAppIcon(AssetImage("assets/new_icon.png"));
              },
              child: Text('Rebrand App'),
            ),
          ],
        ),
      ),
    );
  }
}

3. 准备新图标

确保你已经在 pubspec.yaml 中添加了新图标的路径,并在 assets 文件夹中放置了新的图标文件(例如 assets/new_icon.png):

flutter:
  assets:
    - assets/new_icon.png

4. 注意事项

  • 插件可能需要特定的权限或配置才能正确工作,例如对应用图标的动态更改可能需要在 Android 和 iOS 项目中进行一些配置。
  • 更改应用名称和图标的功能在某些平台上可能有限制,例如在 iOS 上更改应用名称可能不太实际,因为应用名称通常是在 App Store 上预先定义的。
  • 请确保在发布前彻底测试动态更改功能,以确保在不同设备和平台上的兼容性。

5. 动态应用配置(高级)

如果你有更复杂的需求,比如从服务器加载应用配置,你可以使用类似的方法动态更新配置:

Future<void> fetchAndApplyBrandConfig() async {
  // 假设你有一个 API 可以返回品牌配置
  final brandConfig = await fetchBrandConfigFromServer();

  FlutterAppRebrand.instance.setAppName(brandConfig.appName);
  FlutterAppRebrand.instance.setAppIcon(AssetImage(brandConfig.appIconPath));
}

// 示例函数,实际实现取决于你的后端 API
Future<BrandConfig> fetchBrandConfigFromServer() async {
  // 模拟从服务器获取配置
  return BrandConfig(appName: "FetchedAppName", appIconPath: "assets/fetched_icon.png");
}

class BrandConfig {
  final String appName;
  final String appIconPath;

  BrandConfig({required this.appName, required this.appIconPath});
}

以上代码展示了如何在 Flutter 应用中使用 flutter_app_rebrand 插件进行品牌重命名和图标更改的基本方法。根据你的具体需求,你可能需要进一步调整和扩展这些代码。

回到顶部