You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
Chat API 插件 SPM 迁移说明
迁移概述
chat_api 插件已经完成了 Swift Package Manager (SPM) 支持的迁移,现在可以自动处理 OpenAI Swift 包的依赖。
主要变更
1. 目录结构调整
ios/
├── chat_api.podspec # 保留,支持双轨模式
├── Classes/ # 已清空(源码已迁移)
└── chat_api/ # 新增 SPM 结构
├── Package.swift # SPM 包定义
└── Sources/
└── chat_api/ # 源码新位置
├── ChatApiPlugin.swift
└── ChatService.swift
2. Package.swift 配置
- 声明了 MacPaw OpenAI 包依赖
- 自动管理版本(0.4.0+)
- 设置最低 iOS 版本为 13.0
3. podspec 更新
- 更新了
source_files路径指向新的 SPM 结构 - 添加了友好的迁移提示脚本
4. pubspec.yaml 更新
- 添加了
dartPluginClass声明,明确支持 SPM
使用方式对比
旧方式(手动集成)
- 运行
pod install - 打开 Xcode
- 手动添加 OpenAI Swift Package
- 配置依赖关系
新方式(自动集成)
- 启用 SPM:
flutter config --enable-swift-package-manager - 运行
flutter run - 完成!Flutter 自动处理所有依赖
兼容性
- Flutter 3.24+:完整 SPM 支持,推荐使用
- Flutter < 3.24:自动降级到 CocoaPods 模式
- 混合项目:如果项目中有其他插件未迁移到 SPM,Flutter 会智能选择合适的集成方式
验证集成
SPM 项目
# 在 example 目录下
flutter clean
flutter pub get
flutter run --verbose
成功标志:
- 看到 "Adding Swift Package Manager integration..." 消息
- Xcode 中 Package Dependencies 自动出现 OpenAI 包
- 构建成功,无需手动干预
CocoaPods 项目
如果项目仍使用 CocoaPods,会看到:
- podspec 中的迁移提示
- 需要按照
IOS_INTEGRATION_LEGACY.md手动添加依赖
故障排除
-
清理缓存
flutter clean rm -rf ios/Pods ios/Podfile.lock rm -rf ~/Library/Developer/Xcode/DerivedData -
重置 SPM 缓存
- Xcode: File > Packages > Reset Package Caches
-
确认 SPM 已启用
flutter config # 应该看到 enable-swift-package-manager: true
开发者注意事项
- 源码位置:所有 Swift 代码现在位于
ios/chat_api/Sources/chat_api/ - 双轨支持:保持 podspec 和 Package.swift 同时更新
- 版本管理:OpenAI 包版本在 Package.swift 中管理
未来计划
- 当 Flutter 生态系统完全迁移到 SPM 后,可以考虑移除 CocoaPods 支持
- 持续跟踪 MacPaw OpenAI 库的更新