在离线模式下添加 FlutterBlue 插件

Add FlutterBlue plugin in offline mode

我正在尝试在离线模式下将 flutter blue 作为依赖项添加到我的应用程序中。

我无法 运行 pub get 方法,因为它超时了。我相信这是因为我在代理服务器后面操作。我已经将服务器的证书添加到 android studio 中。我知道它可以识别证书,因为我可以创建 运行 一个基本的 android 应用程序项目。但是不知为何flutter的通讯还是被屏蔽了

因为我在台式计算机上工作,所以我不能简单地将我的计算机临时移动到开放网络来执行 pub get 方法。

有没有办法在离线模式下安装flutter blue包?或者有没有办法让 flutter 正确连接到代理服务器后面的互联网?

我能够做一个耗时的 hack,将 flutterBlue 包添加到我的代理服务器后面的 SDK 中。为此,我从 publink 下载了 flutterBlue 包 并将其解压缩到我在 sdk 的 flutter/packages/ 目录中创建的名为 flutter_blue 的新文件夹中。

然后我打开了 flutterBlue 的 pubspec.yaml 并检查了它的依赖项。由于 flutterBlue 也需要自己的依赖项,因此我也必须下载这些依赖项并将其添加到我的 SDK 中。每次添加后,我在pubspec.yaml文件中注释掉依赖值。这是因为它现在包含在 flutter SDK 中。我用其他新添加的东西重复了这个过程,直到不需要新的包。

下面是我将 flutterBlue 包的 pubspec.yaml 文件的依赖项添加到 SDK 后更新的依赖项部分的示例。

dependencies:
  flutter:
    sdk: flutter
  #convert: '^2.1.1'
  #protobuf: '^0.13.12'
  #rxdart: '^0.22.0'

完成 SDK set-up 后,我进入我的项目并打开 .packages 文件并将路径添加到我添加的库文件夹中。以下是我必须包含哪些包才能获得 flutterBlue 支持:

convert:file:///<Hard path location of flutter SDK folder>/flutter/packages/convert/lib
rxdart:file:///<Hard path location of flutter SDK folder>/flutter/packages/rxdart/lib
protobuf:file:///<Hard path location of flutter SDK folder>/flutter/packages/protobuf-0.13.12/lib
fixnum:file:///<Hard path location of flutter SDK folder>/flutter/packages/fixnum/lib
flutter_blue:file:///<Hard path location of flutter SDK folder>/flutter/packages/flutter_blue/lib/

这样做的缺点是,每当您创建一个新的 flutter 项目(当然是在离线模式下)时,您都必须编辑 .packages 文件以包含您手动添加的包,因为它们不包含在auto-generation 过程。

如果您想更新包,您需要获取最新版本并用更新的包手动替换内容,并确认您已将其所有依赖项注释掉并包含在 SDK 包中。