【2025最新】在 macOS 上構建 Flutter iOS 應用

推薦超級課程:

  • 本地離線DeepSeek AI方案部署實戰教程【完全版】
  • Docker快速入門到精通
  • Kubernetes入門到大師通關課
  • AWS云服務快速入門實戰

目錄

    • 軟件要求
      • 操作系統
      • 開發工具
      • 文本編輯器或集成開發環境
    • 安裝 Flutter SDK
      • 下載并安裝 Flutter
      • 將 Flutter 添加到您的`PATH`
    • 配置 iOS 開發
      • 安裝并配置 Xcode
      • 配置您的目標 iOS 設備
        • 設置目標物理 iOS 設備
          • 創建您的 Apple ID 和 Apple 開發者帳戶
          • 將您的物理 iOS 設備連接到 Mac
          • 在 iOS 16 或更高版本上啟用開發者模式
          • 啟用開發人員代碼簽名證書
          • 啟用對 Mac 和 iOS 設備的信任
          • 為您的 iOS 設備啟用開發者證書
        • 在 iOS 設備上設置無線調試(可選)
      • 安裝 CocoaPods
    • 檢查您的開發設置
      • 運行 Flutter doctor
      • 排查 Flutter 醫生的問題
    • 開始使用 Flutter 在 macOS 上開發 iOS 應用

軟件要求

要為 iOS 編寫和編譯 Flutter 代碼,請安裝以下軟件包。

操作系統

zshFlutter 支持在 macOS 12 (Monterey) 或更高版本上進行開發。本指南假定您的 Mac 已將作為默認 shell運行。

某些 Flutter 組件需要Rosetta 2 轉換過程。如果您在Apple Silicon (ARM) Mac 上進行開發,請安裝Rosetta 2:

sudo softwareupdate --install-rosetta --agree-to-license

開發工具

下載并安裝以下軟件包。

  • Xcode用于調試和編譯原生 Swift 或 Objective-C 代碼。Xcode 安裝還包含 Git,用于管理 Flutter 版本和你自己的源代碼版本控制。
  • CocoaPods用于在您的原生應用中編譯并啟用 Flutter 插件。

上述軟件的開發者為這些產品提供支持。要解決安裝問題,請參閱該產品的文檔。

文本編輯器或集成開發環境

您可以使用任何文本編輯器或集成開發環境 (IDE) 結合 Flutter 的命令行工具來構建 Flutter 應用程序。

使用帶有 Flutter 擴展或插件的 IDE 可以提供代碼完成、語法高亮、小部件編輯輔助、調試和其他功能。

熱門選項包括:

Flutter 團隊建議安裝Visual Studio Code和VS Code 的 Flutter 擴展。此組合可簡化 Flutter SDK 的安裝。

安裝 Flutter SDK

要安裝 Flutter SDK,您可以使用 VS Code Flutter 擴展或自行下載并安裝 Flutter 包。

下載并安裝 Flutter

要安裝 Flutter,請從其存檔中下載 Flutter SDK 包,將包移動到您想要存儲的位置,然后提取 SDK。

  1. 下載以下安裝包以獲取 Flutter SDK 的最新穩定版本。

    對于其他發布渠道和舊版本,請查看SDK 檔案。

    Flutter SDK 應該下載到 macOS 默認下載目錄:~/Downloads/

  2. 創建一個可以安裝 Flutter 的文件夾。

    考慮在 創建一個目錄~/development/

  3. 將文件解壓到您想要存儲 Flutter SDK 的目錄中。

    unzip ~/Downloads/flutter_macos_arm64_3.32.8-stable.zip \-d ~/development/
    

    完成后,Flutter SDK 應該位于~/development/flutter目錄中。

將 Flutter 添加到您的PATH

要在終端中運行 Flutter 命令,請將 Flutter 添加到PATH環境變量中。本指南假設您的Mac 運行最新的默認 shell。Zshzsh使用該.zshenv文件作為環境變量。

  1. 啟動您喜歡的文本編輯器。

  2. 如果存在,請~/.zshenv在文本編輯器中打開 Zsh 環境變量文件。如果不存在,請創建~/.zshenv

  3. 復制以下行并將其粘貼到文件末尾~/.zshenv

    export PATH=$HOME/development/flutter/bin:$PATH
    
  4. 保存您的~/.zshenv文件。

  5. 要應用此更改,請重新啟動所有打開的終端會話。

如果您使用其他 shell,請查看有關設置 PATH 的教程。

配置 iOS 開發

安裝并配置 Xcode

要為 iOS 開發 Flutter 應用程序,請安裝 Xcode 以編譯為本機字節碼。

  1. 打開App Store并登錄。

  2. 搜索Xcode

  3. 單擊**“安裝”**。

    Xcode 安裝程序占用 6+ GB 的存儲空間。下載可能需要一些時間。

  4. 要配置命令行工具以使用已安裝的 Xcode 版本,請使用以下命令。

    sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'
    

    請使用這個路徑來獲取最新版本的 Xcode。如果您需要使用其他版本,請指定該路徑。

  5. 簽署 Xcode 許可協議。

    sudo xcodebuild -license
    

配置您的目標 iOS 設備

使用 Xcode,您可以在 iOS 設備或模擬器上運行 Flutter 應用程序。

設置目標物理 iOS 設備

要將 Flutter 應用部署到物理 iPhone 或 iPad,您需要執行以下操作:

  • 創建一個Apple 開發者帳戶。
  • 在 Xcode 中設置物理設備部署。
  • 創建開發配置文件以進行自簽名證書。
  • 如果您的應用使用 Flutter 插件,請安裝第三方 CocoaPods 依賴管理器。
創建您的 Apple ID 和 Apple 開發者帳戶

您現在可以跳過此步驟。在您準備將應用分發到 App Store 之前,您實際上不需要 Apple 開發者帳戶。

如果您只需要測試部署您的應用程序,請完成第一步并繼續下一部分。

  1. 如果您沒有Apple ID,請創建一個。

  2. 如果您尚未注冊Apple 開發者計劃,請立即注冊。

    要了解有關會員類型的更多信息,請查看選擇會員資格。

將您的物理 iOS 設備連接到 Mac

配置您的物理 iOS 設備以連接到 Xcode。

  1. 將您的 iOS 設備連接到 Mac 上的 USB 端口。

  2. 首次將您的 iOS 設備連接到 Mac 時,您的 iOS 設備會顯示“**信任這臺電腦?”**對話框。

  3. 單擊**“信任”**。

    在這里插入圖片描述

  4. 出現提示時,解鎖您的 iOS 設備。

在 iOS 16 或更高版本上啟用開發者模式

從 iOS 16 開始,Apple 要求您啟用**開發者模式**來防御惡意軟件。在部署到運行 iOS 16 或更高版本的設備之前,請先啟用開發者模式。

  1. 點擊設置 > 隱私和安全 > 開發者模式

  2. 點擊即可將開發者模式切換為開啟

  3. 點擊**“重啟”**。

  4. iOS 設備重啟后,解鎖您的 iOS 設備。

  5. 出現“打開開發者模式?”對話框時,點擊“打開”

    對話框解釋說開發者模式需要降低 iOS 設備的安全性。

  6. 解鎖您的 iOS 設備。

啟用開發人員代碼簽名證書

要部署到物理 iOS 設備,您需要在 Mac 和 iOS 設備之間建立信任。這需要您將已簽名的開發者證書加載到 iOS 設備。要在 Xcode 中為應用簽名,您需要創建開發配置文件。

要配置您的項目,請遵循 Xcode 簽名流程。

  1. 啟動 Xcode。

  2. 轉到Xcode > 設置…

    1. 轉到Xcode > 設置…
    2. 單擊**“帳戶”**。
    3. 單擊**+**。
    4. 選擇Apple ID并點擊繼續
    5. 出現提示時,輸入您的Apple ID密碼
    6. 關閉**“設置”**對話框。

    開發測試支持任意Apple ID。

  3. 轉到文件 > 打開…

    您也可以按Cmd+ O。

  4. 導航到您的 Flutter 項目目錄。

  5. 在您的項目中打開默認的 Xcode 工作區:ios/Runner.xcworkspace

  6. 在運行按鈕右側的設備下拉菜單中選擇您要部署到的物理 iOS 設備。

    它應該出現在iOS 設備標題下。

  7. 在左側導航面板中的Targets下,選擇Runner

  8. Runner設置窗格中,單擊Signing & Capabilities

  9. 選擇頂部的**“全部” 。**

  10. 選擇自動管理簽名

  11. 從團隊下拉菜單中選擇一個團隊。

團隊創建于Apple 開發者帳戶頁面的App Store Connect部分。如果您尚未創建團隊,可以選擇個人團隊

團隊下拉菜單顯示該選項為您的姓名(個人團隊)

在這里插入圖片描述

選擇團隊后,Xcode 將執行以下任務:

1.  創建并下載開發證書
2.  使用您的帳戶注冊您的設備,
3.  如果需要,創建并下載配置文件

如果 Xcode 中的自動簽名失敗,請驗證項目的General > Identity > Bundle Identifier值是否唯一。

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

啟用對 Mac 和 iOS 設備的信任

首次連接物理 iOS 設備時,請同時為 Mac 和 iOS 設備上的開發證書啟用信任。

當您將設備連接到 Mac時,您應該已經在 iOS 設備上啟用了對 Mac 的信任。

為您的 iOS 設備啟用開發者證書

不同版本的 iOS 啟用證書的方式有所不同。

  1. 在 iOS 設備上打開**“設置”應用。**

  2. 點擊常規 > VPN 和設備管理

    筆記

    如果您在“設置”中找不到“VPN 和設備管理”,請在您的 iOS 設備上運行一次您的應用,然后重試。

  3. 在開發者應用程序標題下,您應該找到您的證書。

  4. 點擊您的證書。

  5. 點擊信任“<證書>”

  6. 當對話框顯示時,點擊**“信任”**。

如果**協同設計想要訪問密鑰…**對話框將顯示:

  1. 輸入您的 macOS 密碼。

  2. 點按**“始終允許”**。

在 iOS 設備上設置無線調試(可選)

要使用 Wi-Fi 連接調試您的設備,請按照以下步驟操作。

  1. 將您的 iOS 設備連接到與 macOS 設備相同的網絡。

  2. 為您的 iOS 設備設置密碼。

  3. 打開Xcode

  4. 轉到窗口 > 設備和模擬器

    您也可以按Shift+ Cmd+ 2。

  5. 選擇您的 iOS 設備。

  6. 選擇通過網絡連接

  7. 一旦網絡圖標出現在設備名稱旁邊,就從 Mac 上拔下 iOS 設備。

如果您在使用時沒有看到您的設備列出flutter run,請延長超時時間。超時默認為 10 秒。要延長超時時間,請將值更改為大于 10 的整數。

flutter run --device-timeout 60

安裝 CocoaPods

如果你的應用依賴于包含原生 iOS 代碼的Flutter 插件,請安裝CocoaPods。該程序捆綁了 Flutter 和 iOS 代碼中的各種依賴項。

要安裝和設置 CocoaPods,請運行以下命令:

  1. cocoapods按照CocoaPods 安裝指南進行安裝。

    sudo gem install cocoapods
    
  2. 啟動您喜歡的文本編輯器。

  3. ~/.zshenv在文本編輯器中打開 Zsh 環境變量文件。

  4. 復制以下行并將其粘貼到文件末尾~/.zshenv

    export PATH=$HOME/.gem/bin:$PATH
    
  5. 保存您的~/.zshenv文件。

  6. 要應用此更改,請重新啟動所有打開的終端會話。

檢查您的開發設置

幫助

運行 Flutter doctor

flutter doctor命令驗證 macOS 的完整 Flutter 開發環境的所有組件。

  1. 打開你的終端。

  2. 要驗證所有組件的安裝,請運行以下命令。

    flutter doctor
    

由于您選擇開發 iOS 平臺,因此無需所有組件。如果您遵循本指南,該命令應該會輸出[?]您設置的工具和平臺的信息。

排查 Flutter 醫生的問題

flutter doctor命令返回錯誤時,可能是由于 Flutter、VS Code、Xcode、連接的設備或網絡資源。

如果該flutter doctor命令對任何這些組件返回錯誤,請使用詳細標志再次運行它。

flutter doctor -v

檢查輸出中您可能需要安裝的其他軟件或需要執行的進一步任務。

如果您更改了 Flutter SDK 或其相關組件的配置,請flutter doctor 再次運行以驗證安裝。

開始使用 Flutter 在 macOS 上開發 iOS 應用

**恭喜!**所有必備組件和 Flutter SDK 均已安裝完畢,您可以開始在 macOS 上開發 iOS 版 Flutter 應用了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92604.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92604.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 臨時表詳細說明

目錄 MySQL 臨時表詳細說明 1. 定義 2. 核心特性 3. 創建與使用 4. 典型應用場景 5. 生命周期管理 6. 注意事項 7. 性能優化建議 MySQL 臨時表詳細說明 1. 定義 臨時表是存儲在內存或磁盤上的臨時性數據表&#xff0c;僅在當前數據庫會話中存在。會話結束時自動銷毀&a…

深入解析 Apache APISIX 在微服務網關中的性能優化實踐指南

深入解析 Apache APISIX 在微服務網關中的性能優化實踐指南 文章類型&#xff1a;性能優化實踐指南 技術領域&#xff1a;微服務架構 —— API 網關 文章結構&#xff1a;原理深度解析型 目標讀者&#xff1a;有一定微服務與運維基礎的后端開發工程師一、技術背景與應用場景 隨…

【Spring Boot刷新上下文核心流程詳解】

Spring Boot 刷新上下文核心流程詳解 一、前言 在使用 Spring Boot 啟動應用時&#xff0c;控制臺會打印出一大串日志&#xff0c;其中最核心的啟動動作之一就是 刷新上下文&#xff08;refresh&#xff09;。 refresh 方法不僅負責 Bean 的創建與初始化&#xff0c;還涉及監…

關于過濾器(Filter)的學習

過濾器&#xff08;Filter&#xff09;概述 過濾器是 Java Servlet 規范的一部分&#xff0c;用于在請求到達 Servlet 之前或響應返回客戶端之前攔截請求和響應。它可以用于執行各種任務&#xff0c;如請求預處理、響應后處理、身份驗證、日志記錄等。 過濾器的作用 預處理請…

Spring AI 打造智能面試人實戰

Spring AI人工智能面試機器人相關實例 以下是與Spring AI人工智能面試機器人相關的實用案例,涵蓋技術實現、功能設計及常見問題解決方案,按應用場景分類呈現: 技術集成案例 調用Hugging Face模型庫處理專業領域問題 通過Spring Security添加面試會話身份驗證 結合WebSoc…

QT 程序發布時候調用自定義動態庫

1、需要在pro文件中增加下面的內容&#xff1a;QMAKE_LFLAGS "-Wl,-rpath,\\$$ORIGIN\" QMAKE_LFLAGS "-Wl,-rpath,\\$$ORIGIN/lib\" QMAKE_LFLAGS "-Wl,-rpath,\\$$ORIGIN/../lib\"其中lib為動態庫的文件夾名稱&#xff0c;可以根據自己喜好…

SpringBoot學習日記 Day6:解鎖微服務與高效任務處理

一、開篇&#xff1a;從單體到微服務的思維轉變剛開始接觸微服務時&#xff0c;我總習慣把所有功能寫在一個項目里。直到項目越來越臃腫&#xff0c;每次修改都要全量部署&#xff0c;才意識到微服務架構的價值。今天我們就來探索SpringBoot在微服務場景下的強大能力&#xff0…

機械學習--DBSCAN 算法(附實戰案例)

DBSCAN 算法詳解DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff0c;帶噪聲的基于密度的空間聚類應用&#xff09;是一種經典的密度聚類算法&#xff0c;由 Martin Ester 等人于 1996 年提出。與 K-means 等基于距離的聚類算法不同&am…

【昇騰】基于RK3588 arm架構Ubuntu22.04系統上適配Atlas 200I A2加速模塊安裝EP模式下的驅動固件包_20250808

一、背景 1.1 主要的硬件是&#xff1a;1.2 主要的軟件是&#xff1a; RK3588跑操作系統Atlas 200I A2加速模塊作為EP模式關鍵參數版本說明CPU架構aarch64OS版本Ubuntu 22.04.5 LTSkernel版本5.10.198 二、適配 準備固件run包文件&#xff1a;Ascend-hdk-310b-npu-firmware_7.…

如何在 VS Code 中進行 `cherry-pick`

cherry-pick 是 Git 的一個功能&#xff0c;允許你選擇某個 commit 并將其應用到當前分支&#xff0c;而無需合并整個分支。在 VS Code 中&#xff0c;你可以通過 內置的 Git 功能 或 終端 來完成 cherry-pick。方法 1&#xff1a;使用 VS Code 的 Git 圖形界面&#xff08;GUI…

STM32CubeMX(十三)FatFs文件系統(SPI驅動W25Qxx)

目錄 一、知識點 1. 什么是Fatfs文件系統? 2. Fatfs操作系統控制流程 二、實戰操作 1.CubeMX配置 2. 配置串口以及SPI 3. 修改功能映射接口 4. 添加測試代碼 5. 實驗現象 在完成本章之前需要完成一些基礎配置,詳情查看下面的文章。 STM32CubeMX(二)新建工…

【前端后端部署】將前后端項目部署到云服務器

更多筆記在這里? 全棧之路&#xff1a; https://gitee.com/oldbe/notes 【跳轉到】 覺得有用請點個 star &#xff0c;非常感謝&#xff01; 現在AI太強大&#xff0c;開發個人產品的門檻和成本太低了&#xff0c;只要你有好的想法都可以很快速的開發一款產品 1.…

vue如何監聽localstorage

在Vue中監聽localStorage的變化可以通過幾種方式實現&#xff0c;但需要注意的是&#xff0c;localStorage本身不提供原生的事件監聽機制&#xff0c;如DOM元素的MutationObserver。不過&#xff0c;你可以通過一些間接的方法來監聽localStorage的變化。方法1&#xff1a;使用w…

灰狼算法+四模型對比!GWO-CNN-LSTM-Attention系列四模型多變量時序預測

摘要&#xff1a;聚劃算&#xff01;大對比&#xff01;灰狼算法四模型對比&#xff01;GWO-CNN-LSTM-Attention系列四模型多變量時序預測&#xff0c;該代碼特別適合需要橫向對比不同深度學習模型性能的時序預測場景&#xff0c;研究者可通過參數快速適配不同預測需求&#xf…

冒泡排序實現以及優化

一&#xff0c;冒泡排序說明冒泡排序是從第一個元素開始和后面一個元素進行判斷是否滿足左小右大&#xff0c;如果不滿足就交換位置&#xff0c;再拿第二個和第三個進行上述操作一直到第n-1和第n個。經過上述的一輪操作就可以把第一個最大值放到最右邊&#xff0c;在進行n輪上述…

水下管道巡檢機器人cad【10張】三維圖+設計說明書

摘 要 水下管道是水下油氣管道的生命線&#xff0c;水下管道巡檢機器人可以替代人工完成水下油氣管道狀態的實時監測和數據反饋&#xff0c;有助于工作人員對水下油氣管道的運行情況實時掌握。 本文完成了水下管道巡檢機器人的總體設計&#xff0c;采用三維設計軟件Solidwor…

SQL(結構化查詢語言)的四大核心分類

這張圖展示了 SQL&#xff08;結構化查詢語言&#xff09;的四大核心分類&#xff0c;分別對應不同的數據庫操作場景。以下是逐類解析&#xff1a;1. 數據操作語言&#xff08;DML&#xff1a;Data Manipulation Language&#xff09;作用&#xff1a;用于操作數據庫中的數據&a…

AI(1)-神經網絡(正向傳播與反向傳播)

&#x1f34b;&#x1f34b;AI學習&#x1f34b;&#x1f34b;&#x1f525;系列專欄&#xff1a; &#x1f451;哲學語錄: 用力所能及&#xff0c;改變世界。 &#x1f496;如果覺得博主的文章還不錯的話&#xff0c;請點贊&#x1f44d;收藏??留言&#x1f4dd;支持一下博主…

嵌入式Linux學習 - 數據結構6

五、哈希表1. 哈希算法將數據通過哈希算法映射成一個鍵值&#xff0c;存取都在同一位置實現數據的高效存儲和查找將時間復雜度盡可能降低至O(1)2. 哈希碰撞多個數據通過哈希算法得到的鍵值相同&#xff0c;稱為產生哈希碰撞3. 哈希表構建哈希表存放0-100之間的數據將0 - 100之間…

GitHub 趨勢日報 (2025年08月07日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖1894nautilus_trader354stagehand315openai-cookbook263sim242ollama230prisma154v…