xcode 6.3中的词汇问题

时间:2015-04-13 08:25:06

标签: ios objective-c static-libraries xcode6.3

我正在开发一个静态库和一个示例应用程序,我使用Xcode 6.1.1启动了这个静态库和示例应用程序,所以它对这个版本的Xcode工作得非常好。

现在当我上周将我的Xcode更新为6.3时,我的Sample应用程序开始给我lexical or preprocessor issue并且它无法识别静态库的入口类文件。我没有改变任何东西,它仍然适用于Xcode 6.1.1

更新 以下是Static LibraryTest APP

的构建设置的屏幕截图

静态库 - >

Static Library

静态库构建阶段 - >

enter image description here 测试应用 - >

Test App

构建测试应用程序的阶段。 enter image description here

我收到了一些新的编译时错误,如下所示...... enter image description here

图像中的上述类是来自静态库(比如说B)的类,它们已被包含在另一个库中(例如,A)。此软件包包含在测试应用程序中。

这就是我的标题和用户搜索路径分别看起来...... Header search path

enter image description here

4 个答案:

答案 0 :(得分:3)

file was built for archive which is not the architecture being linked (i386)

此错误表示

  

您的静态库没有任何针对您的测试应用程序正在使用的体系结构的二进制文件(i386),因此您无法与该库链接。

第一张图片验证了这一点 - 您只为armv7arm64构建静态库。

您是否尝试在模拟器中运行Test App?尝试更改以在设备上运行,这应该会使架构链接错误消失。要在模拟器上运行,您需要为静态库编译模拟器二进制文件(通常为i386和/或x86_64)。

答案 1 :(得分:2)

确保在主应用的User Header Search Paths和/或Header Search Paths版本设置下,包含静态库项目目录的路径。将路径设置为recursive以确保其检测到所有标头。

答案 2 :(得分:1)

我前段时间遇到过类似的问题。

解决方案#1 尝试进行代码分析:XCode - >产品>分析 https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html

解决方案#2 尝试通过复制当前项目中的文件,逐步从新项目中重新创建项目。也许在某个步骤,您将得到相同的问题,因此您将能够本地化问题。

答案 3 :(得分:1)

Xcode 6.3使用swift 1.2并且需要进行一些微小的更改才能使其运行。预处理器问题也发生在我的一个项目中。

您首先需要打开您的app委托并将didFinishLaunching方法签名更新为

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool

您可能还需要更改为!还是作为?在某些地方。

如果您发布一些代码,我只能提供帮助,尤其是显示错误的行。