Xcode 6错误 – “缺less必要的架构i386”当build设iOS模拟器

我创build了一个自定义的Objective-C框架。 我想将其导入到任何给定的iOS项目中,并在iOS模拟器和实际设备上使用其提供的function。 要导入框架,我使用应用程序目标中的Build Phases> Link Binary With Libraries设置链接它。 然后我可以用下面的语句把它导入到我的一个类中:

#import <CustomFramework/CustomFramework.h> 

我可以实例化我的框架的类,但是当我尝试在设备上运行我的项目时,出现以下错误消息:

 dyld: Library not loaded: @rpath/CustomFramework.framework/CustomFramework Referenced from: /var/mobile/Applications/A61E882D-481A-4C0B-B4FD-69F5D24968BF/TestApp.app/TestApp Reason: image not found 

如果我尝试在模拟器上运行它,我会得到一个不同的错误信息:

 ld: warning: ignoring file /Users/user/Desktop/CustomFramework.framework/CustomFramework, missing required architecture i386 in file /Users/user/Desktop/CustomFramework.framework/CustomFramework (2 slices) Undefined symbols for architecture i386: "_OBJC_CLASS_$_CustomFramework", referenced from: objc-class-ref in AppDelegate.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

这发生在我从框架实例化一个类时。 如果我导入框架,但不实际使用它,我的应用程序成功build立。 只是由于某种原因,当我从框架实例化一个类时,它只是错误。

为了让应用程序build立在设备上,我跟着这个回答。 我没有链接框架,而是在目标的“ 构build阶段”设置中添加了一个新的“复制文件”阶段,将目标设置为框架,并添加了我的框架。

这很好, 不过,我想在iOS模拟器上testing我的应用程序。 当我尝试在模拟器上运行我的应用程序时,仍然收到“缺less必需的体系结构i386”错误。 我尝试了几乎所有相关的SO主题,我可以find的解决scheme,没有什么帮助我解决这个问题。

请注意,我正在尝试在新的Xcode项目中使用我的自定义框架,所以没有任何应用程序/编译设置从默认值更改。

我怎样才能解决这个错误,以便我可以在iOS模拟器和设备上运行我的应用程序与我的框架包含在项目中? 任何有识之士将不胜感激!

问题在于该框架没有为iOS模拟器的架构(i386)编译。 Xcode只编译目标体系结构的框架,所以如果我为iOS模拟器构build框架,它不会在设备上工作,如果我为设备构build框架,它将不能在iOS模拟器上工作。

我从本教程的帮助下创build了我的框架: http : //www.raywenderlich.com/65964/create-a-framework-for-ios

多架构构build脚本使得我的框架可以在iOS模拟器和设备上运行。

在尝试构build模拟器时,我遇到了与Xcode 7.1相同的问题。 有人说,它在Xcode 8.2.1下为他们工作,所以我尝试在那里build设/运行,它的工作。 我不需要改变目标或我的项目中的任何东西。

所以,如果可以的话,尝试升级Xcode,那么你可能会得到更多的错误修复。