构建静态库子项目中使用的Cocoa框架时未找到的符号

时间:2016-07-12 13:46:23

标签: ios xcode cocoa-touch static-libraries ios-frameworks

我在Xcode中构建了一个非常简单的Cocoa Framework,用于iOS设备(不是模拟器)。我将此框架放入另一个构建静态库的项目中。当我构建这个静态库时,它成功而没有错误。没问题。

现在: 我有一个实际的iOS应用程序项目,其中包含静态库项目作为子项目。 project layout

当我尝试构建这个应用程序时,我得到'找不到架构的符号'错误,这个错误与我在cocoa框架中定义的两个类有关: build errors

我不仅要构建活动架构的框架: framework settings

我已经确认它确实是为终端中的armv7和arm64构建的:

Kevins-MBP-2:ASI.framework kevin$ lipo -info ASI
Architectures in the fat file: ASI are: armv7 arm64 

唯一的方法能够成功实现此构建,如果我将我的cocoa框架放入iOS应用程序项目中,另外就可以了已存在于我的静态库项目中。我觉得我不应该在两个项目中都有框架。只有静态库实际使用框架。 iOS应用程序项目不需要了解框架。

1 个答案:

答案 0 :(得分:1)

静态库不包含依赖库,因此每当您链接到静态库时,您需要将它们使用的依赖库提供给链接器。

基本上,您确实需要将可执行文件链接到此Cocoa框架,如您在问题的最后一句中所述。