Flutter:从工程得到归档与 ipa
前提:Flutter SDK 与项目要求匹配,iOS 工程、插件依赖和 Xcode 工具链可用,签名材料与应用标识对应。
flutter doctor -v
flutter pub get
flutter build ipa
先处理 flutter doctor -v 指出的 iOS 工具链问题。依赖恢复失败时区分网络、版本约束与私有包权限;不要反复执行归档命令掩盖前置错误。
预期产物:成功后核对 build/ios/archive 中的归档,以及 build/ios/ipa 中的导出文件。具体目录与导出行为以所用 Flutter 版本和构建输出为准。
React Native:用正确的工作区归档
前提:Node、包管理器与项目锁文件匹配;采用 CocoaPods 的工程已经安装 iOS 依赖,并确认使用正确的 scheme。
node --version
bundle check
cd ios
bundle exec pod install
open .
存在 Gemfile 时使用项目约定的 Bundler 环境;未采用 Bundler 的项目按团队流程安装依赖。在 Xcode 打开生成的 .xcworkspace,不要误开缺少 Pods 依赖的工程文件。
预期产物:选择目标 scheme 和适用的设备归档目标,通过 Product → Archive 得到 .xcarchive,再在 Organizer 中按发行方式导出或上传。
Unity:导出之后还要走完 Xcode
前提:Unity 编辑器版本与工程匹配,iOS 模块可用,第三方原生插件和资源完整,具备相应的编辑器使用授权。
xcodebuild -version
xcodebuild -list -project "$EXPORTED_XCODE_PROJECT"
在 Unity 中切换 iOS 构建目标并导出 Xcode 工程。使用 IL2CPP 的工程需要完成生成代码的原生编译;导出完成还不是可分发的安装包。
预期产物:在 Xcode 中处理签名、依赖和目标配置后执行 Archive,得到归档,再按发行流程导出 ipa 或上传。若插件生成了工作区,应打开工作区继续处理。