You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter创建应用与包的差异及包生成平台代码疑问

问题解答

1. 应用模板与Package模板的pubspec差异

两者的pubspec.yaml核心差异如下:

  • 应用模板:
    • 默认包含flutter: uses-material-design: true配置,启用Material Design图标资源
    • 会自动生成对应--org参数的平台ID映射(Android的applicationId、iOS的bundleId)
    • 依赖项默认自带cupertino_icons,方便快速构建iOS风格界面
    • 无plugin字段,整体配置围绕可独立运行的Flutter应用展开
  • Package模板:
    • 默认无uses-material-design配置,更侧重纯Dart代码的复用场景
    • 不包含平台ID相关配置,因为package本身不可独立运行
    • 依赖项仅默认包含flutter,没有cupertino_icons
    • 若模板生成了平台代码,pubspec可能会带有plugin字段(即使未创建插件类型package),这是当前版本模板的遗留逻辑

2. 非插件Package生成平台代码的原因

你遇到的情况是当前Flutter master通道预览版(3.4.0-29.0.pre.115)的package模板未完全剥离平台代码生成逻辑导致的:

  • 早期Flutter的package和插件模板共享部分底层代码,后续版本虽做了拆分,但开发通道的预览版本可能存在未清理的遗留逻辑,默认生成了Android/iOS的平台目录和代码
  • 这些平台代码采用了旧版Android嵌入方案,因此触发了弃用提示;即使不需要插件功能,模板仍会生成这些结构,用于支持可能的平台特定测试或扩展场景

内容的提问来源于stack exchange,提问作者Chris G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:45:50