Flutter:在 pubspec.yaml 文件中添加仅适用于 iOS 的插件

Posted

技术标签:

【中文标题】Flutter:在 pubspec.yaml 文件中添加仅适用于 iOS 的插件【英文标题】:Flutter: Add plugin only for iOS in pubspec.yaml file 【发布时间】:2019-09-04 02:54:50 【问题描述】:

有没有办法在pubspec.yaml 文件中为特定平台(例如仅适用于 ios)添加插件?

类似的东西。

dependencies:
  flutter:
    sdk: flutter

  isIos ? http: ^1.0 : null

PS:我也知道我可以正常导入插件并且在代码中,我可以进行更改,但我不想要这个解决方案。

if (Theme.of(context).platform != TargetPlatform.iOS) 
  // don't use that plugin part

我只是不想在我的pubspec.yaml 中为特定平台添加插件。可能吗?

【问题讨论】:

不,请参阅***.com/questions/55567988/…(但可能存在黑客攻击,张贴在那里) 【参考方案1】:

无法仅为特定平台添加插件。不过,有一种更简单的方法可以访问当前平台。

import 'dart:io';


if(Platform.isIOS) 
 // Use plugin

 

【讨论】:

【参考方案2】:

使用

Platform.isIOS

import 'dart:io' show Platform;

if (Platform.isandroid) 
  // Android-specific code
 else if (Platform.isIOS) 
  // iOS-specific code

【讨论】:

【参考方案3】:

不确定,但一种可能的方法是本地安装该 pod 并在 Xcode 中编写其实现,然后通过 Flutter 应用程序调用该本地代码。

【讨论】:

以上是关于Flutter:在 pubspec.yaml 文件中添加仅适用于 iOS 的插件的主要内容,如果未能解决你的问题,请参考以下文章

Flutter工程代码管理 pubspec.yaml.packages 与 pubspec.lock文件的来龙去脉

Flutter工程代码管理 pubspec.yaml.packages 与 pubspec.lock文件的来龙去脉

请求解决错误:找不到文件 pubspec.yaml

Flutter pubspec.yaml,音频播放器无法正常工作

更新/安装最新的 Flutter 包 (pubspec.yaml)

初步了解flutter pubspec.yaml