Flutter 之 Mac 环境搭建

2023-10-26

目标

在 Mac 下,搭建 Flutter 运行的 iOS 开发环境

基础环境

要安装并运行 Flutter,您的开发环境必须满足以下最低要求:

  • 操作系统: macOS (64-bit)
  • 磁盘空间: 700 MB (不包括 Xcode 或 Android Studio 的磁盘空间)
  • 工具: Flutter 依赖下面这些命令行工具
    bash, mkdir, rm, git, curl, unzip, which

使用镜像

由于在国内访问 Flutter 有时可能会受到限制,Flutter 官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中(在命令行中运行如下命令):

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

或者,直接编辑/Users/你的用户名/.bash_profile
在这里插入图片描述

搭建 iOS 环境

安装 Xcode
开发 iOS 平台上的 Flutter 应用,你需要一个安装了 Xcode 的 Mac 设备。

  1. 通过直接下载或者通过Mac App Store来安装最新稳定版 Xcode;

  2. 通过在命令行中运行以下命令来配置 Xcode command-line tools:

    $ sudo xcode-select -- switch /Applications/Xcode.app/Contents/Developer
    $ sudo xcodebuild -runFirstLaunch
    

    当你安装了最新版本的 Xcode,大部分情况下,上面的路径都是一样的。但如果你安装了不同版本的 Xcode,你可能要更改一下上述命令中的路径。

  3. 运行一次 Xcode 或者通过输入命令sudoxcodebuild-license来确保已经同意 Xcode 的许可协议。

安装了 Xcode 之后,你就可以在 iOS 真机或者模拟器上运行 Flutter 应用了。

iOS 模拟器

如果想要在 iOS 模拟器中运行和测试 Flutter 应用,通过 Spotlight 或者以下命令来启动模拟器:

$ open -a Simulator

iOS 环境依赖
要将您的 Flutter 应用安装到 iOS 真机设备,您需要一些额外的工具。

  • 安装homebrew(如果已经安装了 brew,跳过此步骤)

  • 打开终端,并运行这些命令,来安装用于将 Flutter 应用安装到 iOS 设备的工具

    以下安装,需要很长时间(可能大于10分钟),需要耐心等待

    brew update 
    brew install --HEAD libimobiledevice
    brew install ideviceinstaller ios-deploy cocoapods
    pod setup
    

    如果这些命令中的任何一个失败并出现错误,请运行 brew doctor 并按照说明解决问题.

安装 Flutter SDK

  • 去 flutter 官网下载
    下载地址:

    或者通过 git 下载

    git clone -b beta https://github.com/flutter/flutter.git
    
  • 解压安装包到你想安装的目录,如:

    cd ~/myapp
    unzip ~/Downloads/flutter_macos_1.22.5-stable.zip
    
    #将解压后的目录命名为flutter,然后复制到/Users/liuchangtao/myapp/
    #最后的路径是/Users/liuchangtao/myapp/flutter
    
  • 添加 flutter 路径到 path 中:

    # 打开 bash_profile
    vim ~/.bash_profiles
    
    # 添加 flutter 环境里变量(在尾部,添加如下代码)
    export PATH="$PATH:/Users/liuchangtao/myapp/flutter/bin"
    
    # 保存退出: wq
    
    # 更新环境里变量
    source ~/.bash_profile
    

    请将上述 flutter 路径,换成你自己的 flutter 路径

  • 验证 flutter 命令

    # 在命令行中输入
    flutter -h
    

    初次运行会下载一些内容
    在这里插入图片描述

  • 检测 flutter

    # 在命令行中输入
    flutter doctor
    

    初次运行时,它会下载它自己的依赖项并自行编译,可能需要等一会儿(以后再运行就会快得多)
    在这里插入图片描述
    若 Android 或 iOS 有依赖缺失。请下载 Android Studio 或者 VS Code,然后在对应 IDE 中下载Flutter 插件。安装过程与 Windows 下的安装过程一致(参考:Flutter 之 Windows 环境搭建.md)
    以下为配置成功的截图:
    在这里插入图片描述

创建 Flutter 应用
通过以下步骤来创建你的第一个 Flutter 应用并进行测试:

  1. 通过运行以下命令来创建一个新的 Flutter 应用:

    $ flutter create flutterdemo
    
  2. 上述命令创建了一个flutterdemo的目录,包含了 Flutter 初始的应用模版,切换路径到这个目录内:

    $ cd flutterdemo
    
  3. 确保模拟器已经处于运行状态:

    # 查看当前模拟器
    $ flutter emulators
    

    在这里插入图片描述

    # 启动模拟器
    $ flutter emulator --launch apple_ios_simulator # ios 模拟器
    # 或者
    $ flutter emulator --launch Nexus_S_API_29 # Andorid 模拟器
    
  4. 运行 flutter

    # 执行项目工程,若有多个设备连接,需要 -d <设备的id>执行某个模拟器
    $ flutter run
    

    在这里插入图片描述

使用 Xcode 打开 Flutter 项目
双击 Flutter 项目目录下的 ios/Runner.xcodeproj
在这里插入图片描述
iOS 配置文件

iOS 下的配置文件是ios/Runner/Info.plist(相当于 android/src/main/AndroidManifest.xml)。我们可以在 iOS 配置文件中,配置权限、语言、主题等信息。一般有两个编辑方式:

  1. 在 VS Code 中编辑
    VS Code 中的 Info.plist 就是一个 XML 文件。例如:常用的权限设置有:

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>App需要您的同意,才能在使用期间访问位置</string>
    
    <key>NSLocationAlwaysUsageDescription</key>
    <string>App需要您的同意,才能始终访问位置</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>App需要您的同意,才能访问相册</string>
    
    <key>NSCameraUsageDescription</key>
    <string>App需要您的同意,才能访问相机</string>
    
    <key>NSMicrophoneUsageDescription</key>
    <string>App需要您的同意,才能访问麦克风</string>
    
    <key>NSLocationUsageDescription</key>
    <string>App需要您的同意,才能访问位置</string>
    
    <key>NSCalendarsUsageDescription</key>
    <string>App需要您的同意,才能访问日历</string>
    
    <key>NSRemindersUsageDescription</key>
    <string>App需要您的同意,才能访问提醒事项</string>
    
    <key>NSMotionUsageDescription</key>
    <string>App需要您的同意,才能访问运动与健身</string>
    
    <key>NSHealthUpdateUsageDescription</key>
    <string>App需要您的同意,才能访问健康更新</string>
    
    <key>NSHealthShareUsageDescription</key>
    <string>App需要您的同意,才能访问健康分享</string>
    
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>App需要您的同意,才能访问蓝牙</string>
    
    <key>NSAppleMusicUsageDescription</key>
    <string>App需要您的同意,才能访问媒体资料库</string>
    
    
  2. 在 Xcode 中编辑
    Xcode 提供了一个可编辑的列表,允许我们添加、删除和编辑具体的配置项。
    在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter 之 Mac 环境搭建 的相关文章

随机推荐

  • C++到底还能做什么?

    嗯 这是一位朋友发到我邮箱里面的 很奇怪 发到了gmail邮箱 而不是我常用的hotmail邮箱哈 我呢 试着回答一下 如果回答得不好 叫做肖某人学艺不精 回去重新学习再来过哈 呵呵 一家之言哈 欢迎拍装 原文如下 肖老师您好 我现在是一名
  • AngularJS 通过事件实现跨作用域传值

    跨作用域传值 跨作用域传值 可以通过 子作用域共同使用父作用域的变量或者使用 单例的service实现 这两种方式 在父级作用域或者 Service 单例的变量值改变的时候 无法实现把值再自动处理赋值给作用域 但是通过事件链 的方式就可以实
  • 页表项长度的计算方法

    Frame Number It gives the frame number in which the current page you are looking for is present The number of bits requi
  • 信息安全概念

    1 信息安全定义 国际标准化组织 lntemational Organization for Standardization IS0 息安全的定义为 为数据处理系统建立和采取技术 管理的安全保护 保护计算机硬件 软件 数据不因偶然的或恶意的
  • 创建一个报表服务器项目,创建报表服务器项目

    创建报表服务器项目 10 17 2017 本文内容 Azure DevOps Server 2020 Azure DevOps Server 2019 TFS 2018 TFS 2013 Azure DevOps Server 以前名为 V
  • 电影下载地址大集合,只要是电影就能找到

    看到很多人都想找一些奇葩 或者国内很少见的电影 你们还在百度 微盘上搜索么 还在人人影视上溜达么 以下收集各大电影网站 绝对能满足你们 如果你不是那么热爱电影 只是闲暇之余看看热门的新片 美剧 不求画质与速度的话 那么下面这几个网站已经能满
  • VB

    文章目录 变量定义 Sub过程 函数定义 控制台输入输出 switch case语句 IF语句 FOR循环语句 不等于 逻辑运算符 控制台输入回车不崩溃函数 获取外部库指针内容放到自定义类中 读ini文件 变量定义 int Dim 变量名
  • 深度学习学习率的调整

    20220626 0 引言 最近在做实验的时候 由于结果一直都不怎么好 我就在想是不是过拟合了 那就算不是过拟合 是不是根本没有学习到数据集中的信息呢 想到了这些事情 我就直接把测试集的效果跟随着训练过程直接打印出来了 当然 实际过程中 肯
  • 1.Linux命令-删除

    Linux的删除命令 在Linux下删除文件 我们使用rm命令 还有搭配相应的参数 具体的选择我们看下面看说明 rm 参数 文件名 参数说明 1 f force 忽略不存在的文件 强制删除 无任何提示 2 i interactive 进行交
  • windows下qtmqtt模块的编译安装-Qt5.12.12

    windows下qtmqtt模块的编译安装 Qt5 12 12 代码获取及编译环境 代码获取 方式1 方式2 配置编译环境 编译安装 代码获取及编译环境 代码获取 方式1 直接git拉取至本地 git clone https github
  • PyTorch显存机制简要分析

    显存开销 显存占用约为element个数的4倍 注意不会将空闲的显存释放 模型参数 模型参数的梯度 优化器状态 跟踪每个权重参数 比如记录动量 中间结果 前向传播时计算的中间结果 显存分析方法 No Nvidia smi PyTorch中即
  • 《JavaScript设计模式》初次笔记——wsdchong

    JavaScript设计模式 初次笔记 前言 设计模式一直久仰大名 但是没有去花时间去了解 于是今天特意花时间去看 JavaScript设计模式 2013年6月出版 和w3cschool上的设计模式 然后做了一些笔记 以 JavaScrip
  • 随机游走序列平稳吗_【问答】时间序列系列(一)—— 平稳序列

    编写 果壳屋 什么是平稳 非平稳序列 如果时间的变化不会导致分布的变化 我们谈论的是分布统计属性 如均值 方差和协方差 我们就把时间序列称为为平稳的 stationary 这并不意味着序列不会随时间而变化 只是它的变化方式本身不会随时间而变
  • mybatis实现继承映射

    ORM 框架的优势在于能让我们利用面向对象的思维去操作数据库 hibernate 作为重量级的 ORM 框架对面向对象的支持很强大 作为半自动化的 mybatis 对面向对象的支持也是很完备的 这篇文章就来讨论一下如何利用 mybatis
  • Vue的路由

    一 Vue的路由 1 路由 路由 从源页面到目的页面的决策过程 2 前端路由 前端路由 在前端页面中维护的路由规则 1 hash 在地址中以 分隔页面 2 history 在地址中以 分隔页面 3 VueRouter路由 VueRouter
  • 今天来聊一聊在人工智能技术发展中起到重要作用的蒸馏算法

    人工智能技术的迅猛发展已经带来了诸多突破和应用 但同时也面临着一些挑战 例如深层网络的复杂性和高计算成本 为了应对这些问题 蒸馏算法作为一种有效的知识传递方法被提出并广泛应用于人工智能领域 本文将深入探讨蒸馏算法的原理 关键技术以及其在人工
  • python的setup.py文件及其常用命令

    http www 2cto com kf 201209 153517 html 编写setup py文件 获取帮助 python setup py help commands python Standard commands build b
  • 【虾说区块链】什么是hash算法?什么是好的hash算法?

    欢迎收听 虾说区块链 现在区块链这个概念在互联网上相当火热 这里简单做一个普及 不涉及项目推广投资 单纯地对区块链相关基础知识概念作一个说明讲解 本人区块链技术爱好者 结合相关区块链资料总结整理了 虾说区块链 也是自己一个学习笔记 涉及相关
  • wireshark提取RTSP over TCP中的视频流

    wireshark提取RTSP over TCP中的视频流 文章目录 wireshark提取RTSP over TCP中的视频流 1 背景 2 提取前准备 3 H264提取步骤 4 后记 1 背景 前面文章中介绍了rtp中提取H264或者H
  • Flutter 之 Mac 环境搭建

    目标 在 Mac 下 搭建 Flutter 运行的 iOS 开发环境 基础环境 要安装并运行 Flutter 您的开发环境必须满足以下最低要求 操作系统 macOS 64 bit 磁盘空间 700 MB 不包括 Xcode 或 Androi