记录一次Windows项目迁移Mac、适配iOS打包的全过程,踩了几个小坑,最终顺利跑通,分享给有需要的同行。
一、迁移初衷(优先上iOS)
今天把 Windows 上的 Flutter 项目完整迁移到 Mac 上,目的是为了 iOS 打包上架。国内安卓渠道(比如小米、华为等主流应用商店)都有个硬性要求,必须提供软件著作权才能上架,而且软著的审核周期很长,耗时又费力;而 iOS 平台,上架时并不需要软件著作权,能大大节省时间,所以我决定优先推进 iOS 端的上线工作。
二、踩坑1:Mac系统版本太低,无法安装Xcode
安装Xcode时,我发现Mac操作系统版本太低,于是花费了不少时间对Mac系统进行升级,之后顺利安装好了Xcode,为后续iOS打包做好了基础准备。
三、代码迁移:拷贝工程+Git分支保护
开发中虽然用Git做版本管理,却没有搭建远程 Git 服务器,无法Push代码,也就没办法直接在 Mac 上拉取项目代码,我就把 Windows 上的整个工程文件夹连同 .git 文件一起拷贝到了Mac上,确保Windows端的开发记录不丢失。
四、踩坑2:TRAE工具版本选错,卡顿严重
迁移过程中又发现了问题:一开始安装的字节 TRAE 工具是 Intel 版本,在 Mac 上运行时,系统会自动创建虚拟机来兼容,导致工具启动、操作都异常卡顿,甚至打开 APP 后会出现严重的卡顿现象。后来我才意识到,是版本选错了,Mac 适配的是ARM64 版本,换成这个版本后,卡顿问题瞬间解决,运行起来也流畅了很多。
【踩坑提醒】:Mac端安装TRAE工具,务必选ARM64版本,Intel版本会通过虚拟机兼容运行,卡顿严重影响操作。
五、环境配置:交给AI处理,节省时间
剩下的环境配置、依赖库安装这些繁琐的操作,我都交给 AI 来处理,不用自己一个个查教程、手动安装,节省了不少时间。
六、工程调试:解决APP显示与空白页问题
工程成功跑起来后,又遇到了几个小问题。首先是 APP 的名称和图标都是系统默认的,我就把安卓端已有的 APP icon 拷贝到 iOS 对应的目录下,再找到Info.plist 配置文件,修改里面的默认名称,这样 APP 的名称和图标就正常显示了。
还有一个问题是,APP 启动后一直是空白页面,没有任何明显的报错信息,我排查了一会儿,最后检查main 函数入口才发现,安卓和 iOS 对 APP 通知、初始化的处理逻辑存在差异,之前的代码只适配了安卓端,调整了 iOS 端的初始化和通知处理逻辑后,空白页问题得以解决,初始化页面也能正常显示。
七、功能测试:模拟器+真机双重验证
目前,APP 的绝大部分功能都已经跑通,只是页面布局在安卓和 iOS 上还有一些细微的差异,这个问题我打算后面再慢慢微调,优先保证功能正常。
APP 已经能在 iOS 模拟器上正常运行,我也连接上真机进行了测试。真机测试的好处是,能够直接安装微信,方便我测试微信登录功能;而 iOS 模拟器里没有 App Store,很多和第三方应用相关的功能都无法测试。
八、总结与后续计划
总的来说,这次 Windows 到 Mac 的项目迁移过程还算顺利,虽然踩了几个小坑,但都被一步步排查解决了。接下来的工作,就是微调 UI 布局、完善细节,做好 iOS 端的最终测试,然后准备往 iOS 平台上架,争取尽快完成上线。
以上就是本次项目迁移的全部记录,后续会继续分享iOS上架细节,欢迎同行交流。

夜雨聆风