Dag*_*uan 11 ios ios-simulator xcode14
我刚刚更新到 xcode 14,模拟器似乎无法与 Rosetta 一起运行来修复滚动滞后。有人有可以帮助我的解决方案吗?谢谢
更新:感谢大家的帮助我们有 2 个解决方案:
Xcode 14.1 更新: 这些解决方案不再有效。所以现在不要更新,希望苹果能尽快解决这个问题
Man*_*anu 14
Xcode 14.0 的解决方案(不适用于 Xcode 14.1 和 14.2)
打开终端并输入:
arch -x86_64 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator
Run Code Online (Sandbox Code Playgroud)
这迫使使用Rosetta。
不支持也不应该需要在 Rosetta 下启动 Simulator.app。我不知道有任何问题需要这样做。
您可能想要在 Rosetta 中启动设备或在 Rosetta 中生成一些进程,例如:
xcrun simctl boot <UDID> --arch=x86_64
Run Code Online (Sandbox Code Playgroud)
或者
xcrun simctl spawn <UDID> --arch=x86_64 ...
Run Code Online (Sandbox Code Playgroud)
此外,如果您的应用程序仅支持 x86_64,则它将在以 arm64 启动的 sim 中正常启动。
注意:编辑 Xcode.app 中的任何文件都会破坏其签名,这意味着更新将无法应用,这将触发 Xcode.app 的完整下载(在首次下载并未能应用增量更新之后)。如果您确实需要以 x86_64 启动 Simulator.app,请使用:
arch -x86_64 /path/to/Xcode.app/Contents/Developer/Applications/Simulator.app/MacOS/Simulator
Run Code Online (Sandbox Code Playgroud)
或者甚至在 ~/.zshrc 中创建一个别名,这样你就可以运行sim:
alias sim='arch -x86_64 $(xcode-select -p)/Applications/Simulator.app/Contents/MacOS/Simulator'
Run Code Online (Sandbox Code Playgroud)
并在http://feedback.apple.com上提交雷达报告,说明您为何需要这样做。
后续:感谢在我发布这篇文章后提出有关 Simulator.app 作为 arm64 本机运行的 HID 问题的雷达的人。该问题已在 Xcode 14.1 中得到修复。
启用此属性列表键LSRequiresNativeExecution构建的应用程序禁止在启动服务中使用 Rosetta。
苹果文档摘录:
...此密钥可防止系统使用 Rosetta 翻译进程在 Apple 芯片上执行通用应用程序的 Intel 部分。
如果将模拟器与 Rosetta 一起使用,请注意。模拟器存在已知问题,例如浮点异常不起作用。因此图形应用程序可能无法正常工作。
您可以使用以下命令强制在 Intel 模式下使用 Rosetta 启动模拟器:
arch -x86_64 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7603 次 |
| 最近记录: |