问题描述
更新到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 (将#修改为@)