You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google MLKit非拉丁语译英文问题:M1模拟器崩溃求助

问题解答

兼容性判断

你的环境确实存在兼容性问题:

  • GoogleMLKit/Translate 4.0.0及以上版本明确不支持X86_64模拟器,而M1 Pro Mac的iOS模拟器依赖Rosetta转译X86_64环境(或原生arm64模拟器未被MLKit适配),官方文档也明确说明M1架构Mac的模拟器不受支持。
  • 英译中文正常、中译英文偶尔可行的差异,是因为两类语言的模型在非兼容架构下的内存处理逻辑不同,非拉丁语系模型更易触发内存管理错误(如pointer being freed was not allocated)。

解决方法

  • 改用真机测试:直接在iOS真机(arm64架构)上运行,这是最根本的解决方案,MLKit的翻译功能在真机环境下完全适配,不会出现此类内存崩溃问题。
  • 降级MLKit Translate版本:将GoogleMLKit/Translate降级到3.x系列版本(如3.2.0),该版本仍支持X86_64模拟器,可在M1 Mac的Xcode模拟器中正常运行非拉丁语系翻译功能。注意降级后需验证与Xcode 15.2、iOS 17的适配性。
  • 模拟器环境临时规避:在代码中添加模拟器判断逻辑,当检测到运行在模拟器时,跳过MLKit翻译流程,使用模拟翻译结果或提示用户切换到真机测试:
    #if targetEnvironment(simulator)
    // 模拟器环境下的临时处理
    let mockTranslation = "Hello"
    #else
    // 真机环境下执行MLKit翻译
    let translator = Translator.translator(options: translatorOptions)
    // ... 翻译逻辑
    #endif
    
  • 强制Xcode使用Rosetta运行:右键Xcode图标→选择「显示简介」→勾选「使用Rosetta打开」,重启Xcode后模拟器将以X86_64模式运行,部分场景下可缓解架构不兼容导致的内存错误(但此方法不保证完全解决,仅作为临时尝试方案)。

内容的提问来源于stack exchange,提问作者bingbong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:12:10