M1 Mac上Xcode 14.2 iOS Simulator滚动异常且无Rosetta选项的求助
解决M1 Mac上Xcode 14.2 iOS Simulator滚动异常问题
一、强制以Rosetta模式运行iOS Simulator
新版Xcode的Simulator.app虽无可视化的“使用Rosetta打开”选项,但可通过以下方式强制启用:
修改Simulator的Info.plist
- 右键点击
/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app,选择「显示包内容」 - 打开
Contents/Info.plist,找到LSArchitecturePriority数组,将arm64移至数组末尾,把x86_64放在第一位 - 保存后重启Simulator,即可以Rosetta模式运行
- 右键点击
修正终端启动命令
先关联Xcode开发环境再启动模拟器,确保命令生效:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer arch -x86_64 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator注意:启动前需关闭所有已打开的Simulator实例
二、无需Rosetta的滚动问题修复方案
若不想依赖Rosetta,可尝试以下针对性修复:
升级React Native版本
确保RN版本为0.68+,该版本起对M1 Mac模拟器有更完善的原生支持,旧版本易出现滚动组件的架构兼容问题调整Xcode Build Settings
- 打开RN项目的iOS工程(
.xcworkspace) - 选择主Target,进入「Build Settings」
- 找到「Architectures」,设置
Architectures为Standard Architectures (arm64, x86_64),Valid Architectures添加arm64和x86_64 - 找到「Build Options」下的「Excluded Architectures」,在Debug模式下移除
arm64(仅针对模拟器)
- 打开RN项目的iOS工程(
清理缓存与重置模拟器
- 关闭Simulator,执行命令清理Derived Data:
rm -rf ~/Library/Developer/Xcode/DerivedData - 在Simulator中选择「Device」→「Erase All Content and Settings」,重置模拟器状态
- 关闭Simulator,执行命令清理Derived Data:
排查第三方滚动组件
若使用了第三方滚动库,确认其是否支持M1架构,尝试升级到最新版或替换为RN原生的ScrollView/FlatList测试
内容的提问来源于stack exchange,提问作者a million starflakes
相关产品推荐
相关产品推荐

