当watchkit添加时,swift项目与cocoapods新错误

时间:2015-06-30 00:53:47

标签: ios swift cocoapods watchkit

我有一个使用Objective C SDK的Swift IOS项目。 SDK代码使用cocoapods安装和更新。 Swift项目中有一个桥接头文件。该项目已经编译和运行多次,并且完全可以运行。当然,既然它已经构建并运行,那么工作区文件就是它的打开方式......

我添加了一个watchkit扩展。我运行pod update来制作一个新的锁文件。我确认watchkit中的搜索路径包括pods / recursive。我将头文件添加到Watchkit Extension。

这三个步骤是我能够找到的关于使cocoapods托管代码与Watchkit一起使用的唯一建议。

我得到三个错误。他们是:

Undefined symbols for architecture x86_64:

  "_OBJC_CLASS_$_SparkCloud", referenced from:
      __TMaCSo10SparkCloud in InterfaceController.o

  "_OBJC_CLASS_$_SparkDevice", referenced from:
      __TMaCSo11SparkDevice in InterfaceController.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

是否有人建议可能允许项目编译的进一步步骤?

2 个答案:

答案 0 :(得分:0)

正如问题所述,此Swift IOS项目使用cocoapods来管理提供对Cloud API的访问的目标C SDK。

将WatchKit扩展添加到Xcode项目后执行以下步骤。

在项目主文件夹(蓝色,顶部)“信息”选项卡中,请注意在“调试”一节中,WatchKit扩展旁边有一个“无”条目。将其更改为Pods.debug。单击它并选择Pods.debug。

在Release部分下,将WatchKit Extension从None更改为Pods.release

现在单击WatchKit Extension Target并选择General选项卡。此处链接的框架和库将为空。单击加号并从列表libPods.a中选择并添加它,确保选中了必需选项(在右侧)。

这应该完成让您的cocoapods库可以访问WatchKit Extension下的InterfaceController.swift文件的工作,这是您编写“运行”手表的代码。

答案 1 :(得分:0)

您的项目中似乎缺少SparkCloud.framework。您可以通过以下方式添加:

  • 点击左侧窗格左上角的项目(蓝色图标)。

  • 导航至“构建阶段。”

  • 在“Link Binary With Libraries”下,点击加号按钮。

  • 从列表中找到SparkCloud.framework,然后点击Add。您可能还想添加Spark SDK所需的任何其他框架。

This will ensure that the Spark frameworks are found by the linker.

  • 点击构建,错误应该消失。