如何为 Flutter 应用创建纯 Dart 包?

kin*_*ine 6 flutter

我正在尝试创建一个纯 Dart 包以在我的 Flutter 应用程序中使用。问题是,在构建我的应用程序时,会在库文件夹下生成一些 Android 和 iOS 特定文件。我想知道这是一个错误还是一个已知功能?

我使用以下命令创建了项目:

flutter create -t package mypackage
Run Code Online (Sandbox Code Playgroud)

例如,生成的文件GeneratePluginRegistrant.java如下所示:

package io.flutter.plugins;

import io.flutter.plugin.common.PluginRegistry;

/**
 * Generated file. Do not edit.
 */
public final class GeneratedPluginRegistrant {
  public static void registerWith(PluginRegistry registry) {
    if (alreadyRegisteredWith(registry)) {
      return;
    }
  }

  private static boolean alreadyRegisteredWith(PluginRegistry registry) {
    final String key = GeneratedPluginRegistrant.class.getCanonicalName();
    if (registry.hasPlugin(key)) {
      return true;
    }
    registry.registrarFor(key);
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以避免生成那些GeneratePluginRegistrant.* 文件吗?如果不是,我是否必须将它们提交给源代码管理?

Rém*_*let 5

对于纯 dart 包,您只需要一件事: a pubspec.yaml,具有名称和环境约束:

name: my_package
environment:
  sdk: ">=2.0.0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

不过,这足以my_package作为依赖项添加到您的 flutter 项目中:

dependencies:
  my_package:
    path: ../path/to/my_package/folder
Run Code Online (Sandbox Code Playgroud)