應用程式開發人員的 Swift Package Manager
- 如何開啟 Swift Package Manager
- 如何關閉 Swift Package Manager
- 如何新增 Swift Package Manager 整合
- 如何移除 Swift Package Manager 整合
- 如何使用需要較高作業系統版本的 Swift Package Manager Flutter 外掛程式
Flutter 的 Swift Package Manager 整合有幾個優點
- 提供存取 Swift 套件生態系統的途徑。Flutter 外掛程式可以使用日益成長的 Swift 套件 生態系統。
- 簡化 Flutter 安裝。Xcode 包含 Swift Package Manager。如果您的專案使用 Swift Package Manager,則不需要安裝 Ruby 和 CocoaPods。
如果您在 Flutter 的 Swift Package Manager 支援中發現錯誤,請提出問題。
如何開啟 Swift Package Manager
#Flutter 的 Swift Package Manager 支援預設為關閉。若要開啟它
切換至 Flutter 的
main
通道shflutter channel main --no-cache-artifacts
升級至最新的 Flutter SDK 並下載成品
shflutter upgrade
開啟 Swift Package Manager 功能
shflutter config --enable-swift-package-manager
使用 Flutter CLI 執行應用程式 會遷移專案以新增 Swift Package Manager 整合。這會讓您的專案下載 Flutter 外掛程式所依賴的 Swift 套件。具有 Swift Package Manager 整合的應用程式需要 Flutter 版本 3.24 或更高版本。若要使用舊版的 Flutter,您需要從應用程式中移除 Swift Package Manager 整合。
對於尚未支援 Swift Package Manager 的依賴性,Flutter 會退回使用 CocoaPods。
如何關閉 Swift Package Manager
#停用 Swift Package Manager 會導致 Flutter 對所有依賴性使用 CocoaPods。但是,Swift Package Manager 仍然與您的專案整合。若要從您的專案中完全移除 Swift Package Manager 整合,請遵循如何移除 Swift Package Manager 整合的指示。
針對單一專案關閉
#在專案的 pubspec.yaml
檔案中,於 flutter
區段下,新增 disable-swift-package-manager: true
。
# The following section is specific to Flutter packages.
flutter:
disable-swift-package-manager: true
這會針對此專案的所有貢獻者關閉 Swift Package Manager。
針對所有專案全域關閉
#執行下列命令
flutter config --no-enable-swift-package-manager
這會針對目前使用者關閉 Swift Package Manager。
如果專案與 Swift Package Manager 不相容,所有貢獻者都需要執行此命令。
如何新增 Swift Package Manager 整合
#新增至 Flutter 應用程式
#當您開啟 Swift Package Manager 後,下次使用 CLI 執行應用程式時,Flutter CLI 會嘗試遷移您的專案。此遷移會更新您的 Xcode 專案,以使用 Swift Package Manager 來新增 Flutter 外掛程式依賴性。
若要遷移您的專案
使用 Flutter CLI 執行 iOS 應用程式。
如果您的 iOS 專案還沒有 Swift Package Manager 整合,Flutter CLI 會嘗試遷移您的專案,並輸出類似以下的內容
flutter run Adding Swift Package Manager integration...
自動 iOS 遷移會修改
ios/Runner.xcodeproj/project.pbxproj
和ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
檔案。如果 Flutter CLI 的自動遷移失敗,請遵循手動新增 Swift Package Manager 整合中的步驟。
[選用] 若要檢查您的專案是否已遷移
在 Xcode 中執行應用程式。
確保 Run Prepare Flutter Framework Script 作為預先動作執行,且
FlutterGeneratedPluginSwiftPackage
為目標依賴性。確保 Run Prepare Flutter Framework Script 作為預先動作執行
當您開啟 Swift Package Manager 後,下次使用 CLI 執行應用程式時,Flutter CLI 會嘗試遷移您的專案。此遷移會更新您的 Xcode 專案,以使用 Swift Package Manager 來新增 Flutter 外掛程式依賴性。
若要遷移您的專案
使用 Flutter CLI 執行 macOS 應用程式。
如果您的 macOS 專案還沒有 Swift Package Manager 整合,Flutter CLI 會嘗試遷移您的專案,並輸出類似以下的內容
flutter run -d macos Adding Swift Package Manager integration...
自動 iOS 遷移會修改
macos/Runner.xcodeproj/project.pbxproj
和macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
檔案。如果 Flutter CLI 的自動遷移失敗,請遵循手動新增 Swift Package Manager 整合中的步驟。
[選用] 若要檢查您的專案是否已遷移
在 Xcode 中執行應用程式。
確保 Run Prepare Flutter Framework Script 作為預先動作執行,且
FlutterGeneratedPluginSwiftPackage
為目標依賴性。確保 Run Prepare Flutter Framework Script 作為預先動作執行
手動新增至 Flutter 應用程式
#當您開啟 Swift Package Manager 後,下次使用 CLI 執行應用程式時,Flutter CLI 會嘗試遷移您的專案以使用 Swift Package Manager。
但是,如果發生非預期的修改,Flutter CLI 工具可能無法自動遷移您的專案。
如果自動遷移失敗,請使用下列步驟將 Swift Package Manager 整合手動新增至專案。
在手動遷移之前,請提出問題;這有助於 Flutter 團隊改進自動遷移程序。請在您的問題中包含錯誤訊息,如果可能,請包含以下檔案的副本
ios/Runner.xcodeproj/project.pbxproj
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
(或所使用 flavor 的 xcsheme)
步驟 1:新增 FlutterGeneratedPluginSwiftPackage 套件依賴性
#在 Xcode 中開啟您的應用程式 (
ios/Runner.xcworkspace
)。導覽至專案的 Package Dependencies。
專案的套件依賴性 按一下 add。
在開啟的對話方塊中,按一下 Add Local...。
導覽至
ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage
並按一下 Add Package。確保它已新增至
Runner
目標,並按一下 Add Package。確保套件已新增至 Runner
目標確保
FlutterGeneratedPluginSwiftPackage
已新增至 Frameworks, Libraries, and Embedded Content。確保 FlutterGeneratedPluginSwiftPackage
已新增至 Frameworks, Libraries, and Embedded Content
步驟 2:新增 Run Prepare Flutter Framework Script 預先動作
#必須針對每個 flavor 完成下列步驟。
前往 Product > Scheme > Edit Scheme。
在左側邊欄中展開 Build 區段。
按一下 Pre-actions。
按一下 add 並從選單中選取 New Run Script Action。
按一下 Run Script 標題,並將其變更為
Run Prepare Flutter Framework Script
將 Provide build settings from 變更為
Runner
應用程式。在文字方塊中輸入以下內容
sh"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" prepare
新增 Run Prepare Flutter Framework Script 建置預先動作
步驟 3:執行應用程式
#在 Xcode 中執行應用程式。
確保 Run Prepare Flutter Framework Script 作為預先動作執行,且
FlutterGeneratedPluginSwiftPackage
為目標依賴性。確保 Run Prepare Flutter Framework Script 作為預先動作執行 確保應用程式可使用
flutter run
在命令列中執行。
當您開啟 Swift Package Manager 後,下次使用 CLI 執行應用程式時,Flutter CLI 會嘗試遷移您的專案以使用 Swift Package Manager。
但是,如果發生非預期的修改,Flutter CLI 工具可能無法自動遷移您的專案。
如果自動遷移失敗,請使用下列步驟將 Swift Package Manager 整合手動新增至專案。
在手動遷移之前,請提出問題;這有助於 Flutter 團隊改進自動遷移程序。請在您的問題中包含錯誤訊息,如果可能,請包含以下檔案的副本
macos/Runner.xcodeproj/project.pbxproj
macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
(或所使用 flavor 的 xcsheme)
步驟 1:新增 FlutterGeneratedPluginSwiftPackage 套件依賴性
#在 Xcode 中開啟您的應用程式 (
macos/Runner.xcworkspace
)。導覽至專案的 Package Dependencies。
專案的套件依賴性 按一下 add。
在開啟的對話方塊中,按一下 Add Local...。
導覽至
macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage
並按一下 Add Package。確保它已新增至 Runner 目標,並按一下 Add Package。
確保套件已新增至 Runner
目標確保
FlutterGeneratedPluginSwiftPackage
已新增至 Frameworks, Libraries, and Embedded Content。確保 FlutterGeneratedPluginSwiftPackage
已新增至 Frameworks, Libraries, and Embedded Content
步驟 2:新增 Run Prepare Flutter Framework Script 預先動作
#必須針對每個 flavor 完成下列步驟。
前往 Product > Scheme > Edit Scheme。
在左側邊欄中展開 Build 區段。
按一下 Pre-actions。
按一下 add 按鈕,並從選單中選取 New Run Script Action。
按一下 Run Script 標題,並將其變更為
Run Prepare Flutter Framework Script
將 Provide build settings from 變更為
Runner
目標。在文字方塊中輸入以下內容
sh"$FLUTTER_ROOT"/packages/flutter_tools/bin/macos_assemble.sh prepare
新增 Run Prepare Flutter Framework Script 建置預先動作
步驟 3:執行應用程式
#在 Xcode 中執行應用程式。
確保 Run Prepare Flutter Framework Script 作為預先動作執行,且
FlutterGeneratedPluginSwiftPackage
為目標依賴性。確保 Run Prepare Flutter Framework Script
作為預先動作執行確保應用程式可使用
flutter run
在命令列中執行。
新增至現有應用程式(add-to-app)
#Flutter 的 Swift Package Manager 支援不適用於 add-to-app 情境。
若要隨時掌握狀態更新,請參閱 flutter#146957。
新增至自訂 Xcode 目標
#您的 Flutter Xcode 專案可以有自訂的 Xcode 目標,以建置其他產品,例如框架或單元測試。您可以將 Swift Package Manager 整合新增至這些自訂的 Xcode 目標。
遵循如何將 Swift Package Manager 整合手動新增至專案中的步驟。
在步驟 1,清單項目 6 中,使用您的自訂目標而不是 Flutter
目標。
在步驟 2,清單項目 6 中,使用您的自訂目標而不是 Flutter
目標。
如何移除 Swift Package Manager 整合
#若要新增 Swift Package Manager 整合,Flutter CLI 會遷移您的專案。此遷移會更新您的 Xcode 專案,以新增 Flutter 外掛程式依賴性。
若要復原此遷移
清除您的專案
shflutter clean
在 Xcode 中開啟您的應用程式 (
ios/Runner.xcworkspace
或macos/Runner.xcworkspace
)。導覽至專案的 Package Dependencies。
按一下
FlutterGeneratedPluginSwiftPackage
套件,然後按一下 remove。要移除的 FlutterGeneratedPluginSwiftPackage
導覽至
Runner
目標的 Frameworks, Libraries, and Embedded Content。按一下
FlutterGeneratedPluginSwiftPackage
,然後按一下 remove。要移除的 FlutterGeneratedPluginSwiftPackage
前往 Product > Scheme > Edit Scheme。
在左側邊欄中展開 Build 區段。
按一下 Pre-actions。
展開 Run Prepare Flutter Framework Script。
按一下 delete。
要移除的建置預先動作
如何使用需要較高作業系統版本的 Swift Package Manager Flutter 外掛程式
#如果 Swift Package Flutter Manager 外掛程式需要比專案更高的作業系統版本,您可能會收到類似這樣的錯誤
Target Integrity (Xcode): The package product 'plugin_name_ios' requires minimum platform version 14.0 for the iOS platform, but this target supports 12.0
若要使用外掛程式,請增加應用程式目標的 Minimum Deployments。
除非另有說明,否則本網站上的文件反映了 Flutter 的最新穩定版本。頁面最後更新時間為 2024-12-04。 檢視原始碼 或 回報問題。