Flutter 学习笔记

本笔记基于该教程, 让我们说谢谢 Google 写着感觉和 ArkTS 和 Kotlin 很像 PS:如果你使用 Windows,请将所有 ⌘ (Mac 上的 Command 键)视为 Ctrl 键 Flutter环境配置 按照 flutter brew install flutter 安装 VSCode(其他的也行)插件 安装 xcode xcode-select --install 创建一个新项目 F1 -> flutter new -> Application->填项目名称,选路径 替换以下内容 pubspec.yaml name: 你的项目名称 description: A new Flutter project. publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 0.0.1+1 environment: sdk: '>=2.19.4 <4.0.0' dependencies: flutter: sdk: flutter english_words: ^4.0.0 provider: ^6.0.0 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 flutter: uses-material-design: true 替换 analysis_options.yaml (用于代码分析器) include: package:flutter_lints/flutter.yaml linter: rules: prefer_const_constructors: false prefer_final_fields: false use_key_in_widget_constructors: false prefer_const_literals_to_create_immutables: false prefer_const_constructors_in_immutables: false avoid_print: false 替换lib/main.dart,经典的面向对象语言 import 'package:english_words/english_words.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (context) => MyAppState(), child: MaterialApp( title: 'Namer App', theme: ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepOrange), ), home: MyHomePage(), ), ); } } class MyAppState extends ChangeNotifier { var current = WordPair.random(); } class MyHomePage extends StatelessWidget { @override Widget build(BuildContext context) { var appState = context.watch<MyAppState>(); return Scaffold( body: Column( children: [ Text('A random idea:'), Text(appState.current.asLowerCase), ], ), ); } } 运行这个新项目 停留在 main.dart 上,选择当前的目标运行平台(右下角) 我这里选了 Mac,然后点击运行标志,结果报错了在 stackoverflow 找到xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH。如果装了 Xcode APP 版本,进入 Settings->Locations,改一下 command line tools 的路径 再运行,还是报错 运行 flutter doctor -v,发现没装 cocoapods。运行brew install cocoapods即可 再运行,还是一样的报错。在这里找到原因,有人就是因为被 iCloud 文件提供器加了 com.apple.fileprovider.fpfs#P 才一直失败,- 任何打包进 .app 的文件只要带有资源分叉或 Finder 信息,CodeSign 都会拒绝。所以我把项目移出了 iCloud 同步的文件夹,然后清理资源重新运行 # 1) Flutter 清理 + 移除构建输出 flutter clean rm -rf build/macos # 2) 删除 Xcode 派生数据 rm -rf ~/Library/Developer/Xcode/DerivedData/* # 3) 递归清理整个项目树的扩展属性(包含将来要进 .app 的一切) xattr -rc . # 4) 若你从网上下过三方二进制/压缩包,顺便去掉隔离标记 xattr -dr com.apple.quarantine . # 5) 重新预拉取 macOS 引擎构件(避免 SDK 自身产物带脏属性) flutter precache --macos # 6) 重新构建 flutter run -d macos 这次成功了,弹出了我们的 APP 再试试 iOS 平台,右下角构建平台选择 ios simulator再打开 lib/main.dart ,点击右上角运行标志,等待一会也可以正确显示 热重载 我们修改文字,并按 ⌘+S,可看到程序中的文字发生了变化(注意 Web 平台不支持) 添加一个按钮 我们继续修改,修改以下内容 ...

2025年10月23日 · 9 分钟 · 1865 字 · Dorianyang