【问题标题】:Why won't my project run in the iPhone Simulator?为什么我的项目不能在 iPhone 模拟器中运行?
【发布时间】:2010-07-18 15:13:38
【问题描述】:

由于某种原因,我的应用程序可以在我的设备上正常安装和运行,但是当我尝试在 iPhone 模拟器上安装我的应用程序时,我收到以下警告:

ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit, missing required architecture i386 in file


ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation, missing required architecture i386 in file


ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics, missing required architecture i386 in file


ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/CFNetwork.framework/CFNetwork, missing required architecture i386 in file


ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox, missing required architecture i386 in file


ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices, missing required architecture i386 in file


ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration, missing required architecture i386 in file


ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore, missing required architecture i386 in file

这会导致一堆错误,这些错误只会在这些框架不存在时发生。像这样的错误:

  "_OBJC_CLASS_$_NSMutableCharacterSet", referenced from:      objc-class-ref-to-NSMutableCharacterSet in SBJsonWriter.o

【问题讨论】:

  • 看起来你以某种方式链接到设备库而不是模拟器库。您使用的是 Xcode 还是其他构建方法,例如 Makefile?
  • 我正在使用 Xcode 3.2.3,我的基本 SDK 设置为 iPhoneDevice4.0
  • 看我的回答,它解决了问题。
  • 不,实际上并没有。
  • 嘿@z43Studio 我知道它已经很老了,但是您仍然找到任何解决方案吗?

标签: iphone ios-simulator


【解决方案1】:

答案是:

1) Base SDK 应该是 Device

2) iPhone SDK 框架已复制到您的项目目录(在磁盘上)。打开您的项目目录并删除所有标准 iPhone SDK 框架。

3) 清理缓存并重建

【讨论】:

  • 所有这些都做了三遍,仍然没有成功。我删除了所有框架,然后从 R.Click>Add>Add Framework... 和 iPhoneSimulator.sdk 文件中重新添加了它,但都没有用。
【解决方案2】:

我遇到了同样的问题。这是由于在启用复制选项的情况下将框架从一个项目拖到另一个项目。 即使我后来取消了对这些框架的引用,并正确添加了它们,它仍然给我这些错误,直到我从项目中删除了框架目录。

【讨论】:

  • 我没有这样做来添加框架。我从侧边栏转到应用程序信息,并从链接框架和库选项中添加它们。
【解决方案3】:

它正在尝试针对设备库进行构建以在模拟器上使用。路径应如下所示:

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit

...用iPhoneSimulator.platform 代替iPhoneOS.platform。检查您的构建设置,清理项目并清空 Xcode 缓存(Xcode>Empty Cache...)。

【讨论】:

  • 我已将基础 SDK 更改为 iPhone Simulator 4.0,删除并重新添加了每个链接库,并清空了 Xcode 缓存,我仍然收到相同的错误,并且它没有更改为 @987654324 @
【解决方案4】:

如果我没记错的话,如果您使用基础 SDK > 3.2,则应该将架构设置为优化。这是armv7。 不过我不确定。
〜纳塔纳瓦拉。

【讨论】:

    【解决方案5】:

    我认为您将 iPhone Device x.x 而不是 iPhone Simulator x.x 设置为基本 SDK。 当我这样做时,我也遇到过类似的事情。

    【讨论】:

      【解决方案6】:

      我想出了一个解决办法。我将基础 SDK 设置为 iPhone Simulator 4.0,因为它仍然尝试从 iPhoneOS 获取 SDK,我将 iPhoneOS.platoform 重命名为 iPhoneOS_2.platform,因此 Xcode 无法从该平台访问 SDK。

      【讨论】:

      • 但我不应该那样做!我希望它只适用于模拟器和我的设备!
      【解决方案7】:

      您需要在顶部菜单栏上构建并按选项清除所有目标

      【讨论】:

      • 仍有 255 个错误和 15 个警告。
      猜你喜欢
      • 2017-02-23
      • 1970-01-01
      • 2014-09-03
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 2011-07-29
      相关资源
      最近更新 更多