可以更改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 (将#修改为@)