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

可以更改iOS中的体系结构ARCHS,VALID_ARCHS等有哪些副作用?哪些架构是必需的?

如何解决可以更改iOS中的体系结构ARCHS,VALID_ARCHS等有哪些副作用?哪些架构是必需的?

更新到Xcode 12之后,我在编译自iOS 2(!)开始存在的iOS项目时遇到了一些麻烦

我只需对所有体系结构设置使用$(ARCHS_STANDARD)就可以解决这些问题。尽管这似乎可行,但我想知道这些更改可能会产生什么影响。我只能在数量有限的设备上测试该应用。

使用$(ARCHS_STANDARD) = armv7 arm64是否有可能使该应用与某些旧设备不兼容?是否保存下来就这么简单地使用此设置,还是需要考虑一些可能的副作用?


上下文:

该项目没有编译时出现奇怪的签名错误。我能够弄清楚,签名根本没有问题,但是架构是真正的原因。

在Xcode 12中,VALID_ARCHS已由Excluded Architectures取代,因此VALID_ARCHS已从架构设置移至用户定义。

主应用程序目标使用armv7 armv7s armv8 arm64 i386作为VALID_ARCHS时,WatchKit扩展使用armv7k i386 armv7 armv7s armv8 arm64。所有目标的体系结构设置均为$(ARCHS_STANDARD)

我的第一种方法是按照Apple的建议完全删除(= empty)VALID_ARCHS。但是,这导致了新的错误。最后,将$(ARCHS_STANDARD)用于VALID_ARCHS解决了这个问题。

对于$(ARCHS_STANDARD)中的App目标VALID_ARCHS解析为armv7 arm64,对于WatchKit应用程序+扩展名解析为armv7k arm64_32。通过这些设置,项目可以同时针对模拟器和真实设备进行编译。

但是,我注意到在Xcode中,“构建”菜单现在已从Build: Any iOS device更改为Build: Any iOS devices (arm64)

是保存吗,所以只需使用此设置,还是需要考虑一些可能的副作用?

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