Flutter:为每个平台(iOS 和 Android)安装不同版本的依赖

Jac*_*nig 5 flutter flutter-dependencies

我正在尝试为 flutter 中的蓝牙安装 flutter_blue 依赖项,并且意识到在我的环境中只有 0.6.2 版适用于 android,而 ^0.6.3+1 版适用于 ios。

有没有办法声明特定于平台的依赖项或版本?

小智 4

我面临着同样的问题,并最终做了以下事情:

  1. 创建名为 pubspec.ios.yaml 的 iOS 专用 pubspec。然后,您可以在此处放置特定于 iOS 的任何内容:

    ...
    dependencies:
      flutter:
        sdk: flutter
      flutter_blue: 0.6.3+1
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在我的构建管道中添加一个小脚本:

    # We use a specific pubspec file for iOS
    cp pubspec.ios.yaml pubspec.yaml
    flutter pub get
    
    Run Code Online (Sandbox Code Playgroud)

请注意,重新生成 pubspec.lock 需要“flutter pub get”。

它有点脏,但我没有想出比这更干净的东西。

PS:我使用 Microsoft App Center 进行 CI/CD,因此在调用 flutter build 之前将上述内容添加到 appcenter-post-clone.sh 脚本中

# We use a specific pubspec file for iOS
cp pubspec.ios.yaml pubspec.yaml
flutter pub get

# The build !
flutter build ios --release --no-codesign -vvv
Run Code Online (Sandbox Code Playgroud)