近日,多位跨平台移动开发者反映,在升级至最新版本的 Android Studio(代号 Quail 1,版本号为 2024.1)后,原本用于调试 iOS 应用的“iOS Execution Target”选项在界面中神秘消失。这一异常导致依赖 Flutter、React Native 等框架进行 iOS 与 Android 双端开发的用户无法直接在该集成开发环境中启动或调试 iOS 模拟器,开发工作流被迫中断。
问题浮现:目标选择器“失联”
据多位开发者在 GitHub Issues、Stack Overflow 以及 Reddit 社区反馈,当他们在 Android Studio Quail 1 中打开 Flutter 项目后,原本位于工具栏右侧的运行目标下拉菜单中,仅剩 Android 设备和 Chrome 浏览器选项,而 iOS 模拟器列表完全不可见。即便用户已在系统偏好设置中正确配置 Xcode 并安装了多个 iOS 模拟器版本,Android Studio 依然无法识别任何 iOS 执行目标。
“我检查了所有配置,Xcode 和命令行工具都是最新的,模拟器也能手动启动,但在 Android Studio 里就是看不到 iOS 选项。”一位署名 @dev_john 的用户在 GitHub 上留言。类似的声音迅速汇集,多数受影响者确认问题并非个例,且集中在 Android Studio Quail 1 上,之前的 Hedgehog 版本运行正常。
影响范围:Flutter 开发者首当其冲
尽管 Android Studio 官方定位为 Android 开发环境,但自 Flutter 框架推出以来,该 IDE 通过 Flutter 插件提供了对 iOS 构建和运行的支持,成为许多跨平台团队的首选工具。此次“iOS Execution Target”缺失直接导致开发者无法在 Android Studio 内一键运行 iOS 应用,被迫转向 Xcode 或命令行执行 flutter run,效率大打折扣。
“对于习惯在 Android Studio 中调试 UI 布局和性能的团队来说,这等于断了一条腿。”独立开发者李锦明告诉本报。他所在的公司使用 Flutter 同时维护 iOS 与 Android 版本,过去一个窗口就能切换目标,现在不得不频繁切换工具。“更麻烦的是,有些调试功能(如 Flutter DevTools)与 IDE 深度绑定,脱离后体验大幅下降。”
官方与社区:原因尚在追踪,临时方案浮现
截至目前,Google 及 JetBrains 官方尚未就此事发布正式声明。但 Android Studio 官方 issue 跟踪页面已出现相关报告(编号 AS-2024-01-091),被标记为“待确认”。有分析认为,问题可能源于 Android Studio Quail 1 中引入的“目标选择器重构”机制,该机制优化了设备组管理逻辑,但在识别非 Android 目标时存在兼容性漏洞。
受影响的开发者已开始摸索临时解决方案。最直接的办法是降级回 Android Studio Hedgehog 2023.1 版本,但许多用户因项目依赖新版本功能而无法回退。另一种流行方案是手动修改项目根目录下的 .idea/workspace.xml 文件,将 run.target 字段指向 iOS 模拟器标识符,但此方法需要用户提前知道目标 UUID,且每次新项目都需重复操作。
“更简单的办法是使用 flutter devices 命令查看设备列表,然后通过命令行参数指定目标启动,但这同样缺乏图形化便利。”Flutter 社区贡献者赵明指出。他还提到,部分用户尝试在 Android Studio 中重新安装 Flutter 插件并清除缓存,但未能彻底解决问题。
展望:修复补丁有望近期推出
尽管问题令人困扰,但社区对修复速度持乐观态度。鉴于 Flutter 在跨平台领域的普及度,Google 内部通常会在两周内对类似 IDE 集成问题作出响应。此外,JetBrains 的 IntelliJ IDEA 2024.1(Android Studio 的底层平台)即将发布的小版本更新也可能包含兼容性修复。
对于正在使用 Android Studio Quail 1 的开发者,建议在官方修复推出前,暂时采用“Xcode + 终端”的备份工作流,并密切关注 Android Studio 官方更新日志。同时,定期备份 IDE 配置文件,以便在补丁发布后快速恢复全功能开发环境。
移动开发工具的稳定性直接关系到团队交付效率。此次“iOS Execution Target”悬念尚未落幕,但它再次提醒我们:在跨平台世界里,一个看似微小的 UI 元素缺失,足以掀起一场效率危机。