为 iOS 构建,但在为 iOS 模拟器构建的目标文件中链接,用于架构 arm64

Posted

技术标签:

【中文标题】为 iOS 构建,但在为 iOS 模拟器构建的目标文件中链接,用于架构 arm64【英文标题】:building for iOS, but linking in object file built for iOS Simulator, for architecture arm64 【发布时间】:2021-12-25 15:12:54 【问题描述】:

我正在使用个人 C++ 库 mylib.a 构建 ios 应用程序,使用当前 Xcode 版本 (13.1) 当我将此库包含在我的框架中并尝试在物理 iOS 设备上运行时,我有以下问题:

当我包含使用以前的 XCode 版本(我认为是 Xcode 11)构建的库时,应用程序会在设备上构建和运行。

问题出现在 Mac intel 和 M1 上。

【问题讨论】:

【参考方案1】:

您可以尝试排除架构或在目标构建设置中添加名为“VALID_ARCHS”的用户定义设置[在此处输入图像描述][1]

看图片 [1]:https://i.stack.imgur.com/EAkWm.png

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 我在构建设置中尝试过: - 为任何 IOS 模拟器排除架构 arm64 以进行调试和发布 - 将支持的平台设置为仅 iphoneos - 在 $(ARCHS_STANDARD) 上设置架构并将仅构建活动架构设置为是的,但它不起作用 确保还有一个排除的架构,因为它可能会混淆。

以上是关于为 iOS 构建,但在为 iOS 模拟器构建的目标文件中链接,用于架构 arm64的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 12 beta 4:为 iOS 模拟器构建,但在为独立构建的目标文件中链接

Siphon 为 iOS 模拟器构建,但在设备构建时出现链接器错误

为 iOS 模拟器目标构建时忽略 .metal 文件

Mac Catalyst 的问题 - 链接为 iOS 模拟器构建的目标文件

在为 iOS 编译语音演示应用程序时,是不是有人遇到 Xcode 构建错误?

iOS - 无法在设备上构建,但在 Xcode 4.6 上构建模拟器