微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS 框架的 Arm64e 架构

如何解决iOS 框架的 Arm64e 架构

曾几何时,Apple 推出了一种 Arm64e 架构。那是在 Xcode 10.0 期间,所以是 2 年前。从 A12 cpu 开始。今天,在为 iOS 平台选择标准架构时,Xcode 12.4 仍然只有 Arm64 是认的。

Arm64e 发生了什么,为什么它不是认的?

此外,当我手动添加它并为模拟器存档时,我得到:

ld:警告:忽略文件 /Applications/Xcode12.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.iossim.a,文件中缺少所需的架构 arm64e /Applications/Xcode12.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.iossim.a (3片)

怎么了? 这是否意味着 M1 macs 不支持 PAC(指针验证码)? 我有点困惑,但我还不能在 M1 mac 上测试。

解决方法

ABI 还不稳定。

自 A12(包括 M1)以来的所有设备都完全支持硬件中的指针身份验证(根据 ARM 手册,However the debugger say main() is throwing Error(id=23) =========================================================== Unresolved compilation problem: Unhandled exception type FileNotFoundException 用于 A12/A12X/A13,FEAT_PAuth 用于 A14/ M1).
Apple 正在积极将其用于他们自己的软件:内核缓存、他们所有的应用程序、整个 dyld 共享缓存——这些都是为 arm64e 编译的。

但是 PAC againagain 以及 againagain 存在弱点,为了修复它们,Apple 被迫多次更改 ABI .这些更改中的每一个都需要更改编译器并完全破坏了向后兼容性。
出于这个原因,Apple 目前无法合理地拥有 3rd-party arm64e 二进制文件 - 它们会在每次 ABI 更改时中断。您可以为自己构建和运行 arm64e 二进制文件就好了,但在 Apple 决定时机成熟之前,第 3 方将仅支持 arm64。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。