我有一个使用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)
是否有人建议可能允许项目编译的进一步步骤?
答案 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.