我有一个使用 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)
是否有人对可能允许项目编译的进一步步骤有建议?
最佳答案
如问题中所述,这个 Swift IOS 项目使用 cocoapods 来管理一个 objective-c SDK,该 SDK 提供对 Cloud API 的访问。
将 WatchKit 扩展添加到 Xcode 项目后执行这些步骤。
在项目主文件夹(蓝色,顶部)Info 选项卡中,请注意在 Debug 部分中,WatchKit Extension 旁边有一个 None 条目。将其更改为 Pods.debug。单击它并选择 Pods.debug。
在 Release 部分下,将 WatchKit Extension 从 None 更改为 Pods.release
现在单击 WatchKit Extension Target 并选择 General 选项卡。此处链接的框架和库将为空。单击加号并从列表 libPods.a 中选择并添加它,确保选择了必需选项(右侧)。
这应该完成让您的 cocoapods 库可访问 WatchKit 扩展下的 InterfaceController.swift 文件的工作,这是您编写“运行” watch 的代码的地方。
关于ios - 添加 watchkit 时带有 cocoapods 新错误的 Swift 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31127855/