使用 Cocoa Touch Framework 的 iOS 8 项目未在模拟器中构建

Posted

技术标签:

【中文标题】使用 Cocoa Touch Framework 的 iOS 8 项目未在模拟器中构建【英文标题】:iOS 8 project using Cocoa Touch Framework doesn't build in simulator 【发布时间】:2015-02-01 13:56:43 【问题描述】:

我已经使用 XCode 6 创建了一个 Cocoa Touch 框架,我在我的最新项目中使用它,该项目是使用相同版本的 XCode 构建和创建的。这两个项目的部署目标都是 ios 8.1。

当我在模拟器中使用框架时尝试构建我的应用程序时,我得到:

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_WBATranslations", referenced from:
objc-class-ref in RIAccountsViewController.o
ld: symbol(s) not found for architecture x86_64

当我在设备上编译时,项目构建良好,这让我认为框架架构不正确。框架的默认设置在此处的图像上:

我必须做什么才能同时为设备和模拟器构建?

【问题讨论】:

包含WBATranslations定义的文件是否包含在框架目标中? WBATranslations 是框架的一部分吗?如果是这样,则可能尚未为模拟器架构创建框架。 (x86_64 与 arm... 类型) WBATranslations 已包含并可用...就像我提到的,库存档一切正常,但是当我将它包含在另一个项目中时,它不会为模拟器构建,只能在设备上构建 【参考方案1】:

您似乎正在尝试启动一个仅在您的模拟器上为设备编译的框架。

请查看此Tutorial,构建框架部分,您需要为模拟器拖动框架。

您也可以尝试查找一些创建通用框架的教程。比如你可以查看this one

【讨论】:

这将构建一个很可能现在被拒绝的胖二进制文件。我看过这个:kodmunki.wordpress.com/2015/03/04/… 但还不能让它工作:( 构建框架链接已失效。避免在回答中未包含相关内容的情况下链接第三方网站。

以上是关于使用 Cocoa Touch Framework 的 iOS 8 项目未在模拟器中构建的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa Touch Framework 和 pre-Xcode6 框架有啥区别

Cocoa Touch 静态库 - 与标准框架的链接

在 Cocoa Touch 框架中包装静态库

静态 cocoa/cocoa-touch 库应该基于啥样的 SDK?

在 Cocoa/Cocoa Touch 中监控目录

UI - Cocoa Touch框架