ios - 添加 watchkit 时带有 cocoapods 新错误的 Swift 项目

标签 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)

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

最佳答案

如问题中所述,这个 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/

相关文章:

arrays - Swift removeSubrange 足够快吗?

Flutter:CocoaPods 找不到 pod "Firebase/Messaging"的兼容版本

ios - 无法将链接器标志添加到 cocoa pod 规范

ios - UINavigationcontroller PushViewController 无法获取下一个 Viewcontroller

ios - (NSObject, AnyObject) 不可转换为 DictionaryIndex<NSObject, AnyObject>

java - 从 JDeveloper 11.1.2.4 迁移我的应用程序后,JDeveloper 12c 出现错误

android - 如何在 OAuth 2.0 中验证访问 token ?

ios - 我的自动布局约束有什么问题?

ios - Swift iOS - 即使我隐藏它,导航栏也不会保持隐藏状态

Swift、iOS 8+ 私有(private)共享库依赖问题