项目不是为 iphone 模拟器构建的。

Posted

技术标签:

【中文标题】项目不是为 iphone 模拟器构建的。【英文标题】:Project doesn't build for iphone simulator. 【发布时间】:2011-12-09 11:27:17 【问题描述】:

我在尝试为 iphone 模拟器构建时收到此错误:

    d: warning: ignoring file /users/salehshah/SmartSwipe/libANMobilePaymentLib.a, file was    built for archive which is not the architecture being linked (i386) Undefined symbols for architecture i386:

请注意,我在 ios 5 中使用 xcode 4.2。项目在设备上构建和运行良好。我认为链接静态库时存在一些问题。可能是架构的问题。

【问题讨论】:

【参考方案1】:

您链接的静态库不是为模拟器编译的。如果这是一个预编译库,您可能希望创建一个版本,其中包括所有三种 iOS 架构 armv6 armv7 和 i386。您可以通过自己编译每个架构,然后使用 lipo 将它们链接在一起来做到这一点,请参阅man lipo

另一方面,如果您将库编译为应用目标的依赖项,则说明您的构建设置有问题。查看库构建设置,即ARCHSVALID_ARCHS

【讨论】:

它在模拟器上也运行良好。突然它停止运行,我没有更改任何项目设置等。 因此,如果您没有更改任何内容,则无需查看这些设置。你可能被宇宙射线击中了。 ;-) 构建后查看日志导航器(Cmd-7)。图书馆建好了吗?它是为正确的架构(即 i386)构建的吗? 它给出了这个警告:文件是为存档而构建的,而不是被链接的架构(i386) 太好了,我们做到了。我试图帮助您找出为什么它不是为正在链接的架构而构建的。但如果你不回答我的问题,我就不能。再次查看日志导航器。它列出了所有最近的构建。单击最上面的项目“Build ”。在右侧单击左上角的“全部”和右侧的“所有消息”。它现在应该列出在构建应用程序期间构建的所有目标。图书馆有问题吗?它对目标和构建库的 SDK 有什么看法?顺便说一句,尝试了干净的构建? 最后我能够让它工作,静态库是为 iphone 设备构建的,这就是它没有在模拟器上运行的原因。为模拟器编译了一个副本,它工作了。

以上是关于项目不是为 iphone 模拟器构建的。的主要内容,如果未能解决你的问题,请参考以下文章

我在 android studio 中运行我的颤振项目并尝试使用 iPhone 12 模拟器,但 Xcode 构建每次都失败

无法为模拟器构建应用程序。在 iPhone 12 上启动应用程序时出错

“无法为模拟器构建应用程序。” “在 iPhone 11 上启动应用程序时出错。”

为 iOS 编译 Flutter 项目时的 Xcode 构建问题

为模拟器构建应用程序时排除 *.a 文件

如何生成iPhone模拟器构建或.zip文件,以便在Facebook中提交以供iOS审核