Siri 快捷方式和 CocoaPods - 未找到文件

Posted

技术标签:

【中文标题】Siri 快捷方式和 CocoaPods - 未找到文件【英文标题】:Siri Shortcuts and CocoaPods - File Not Found 【发布时间】:2018-09-28 22:31:44 【问题描述】:

我已经启动并运行了快捷方式,但现在我想实际链接使用 GCDAsyncSocket CocoaPod 的网络代码。一旦我将网络管理器类包含到我的 IntentsHandler 中,我就会收到“词汇或预处理器问题”,并且找不到 GCDAsyncSocket.h。

我相信这是因为 CocoaPods 没有安装在我的 Intent Target 中。但是,如果我将 Podfile 配置为将我的 pod 添加到我的 Intent 目标(我尝试将其添加到我的 Intent 和 IntentUI 目标),我会收到各种其他错误。我花了一段时间才让事情恢复正常,因为我必须清理并删除派生数据以将其全部清理干净。

我知道这只是一系列问题中的一个错误,这些问题将出现,包括我与我拥有的网络管理器类链接的所有其他对象。我假设我必须将它们全部添加到我的 Intents 目标中,这将导致更多这样的错误,所有这些都会带来更多的 CocoaPods 和我拥有的其他类。在我再次走这条路之前,我想问一下这是否是实际问题可能是什么?或者如果其他人对如何处理这个有任何建议?

编辑:当我将 cocoapods 添加到我的意图目标时发生的错误是......

'sharedApplication' is unavailable: not available on ios (App Exentsion)... AFRKNetworkActivityIndicatorManager.m

在这种情况下,我的 RestKit pod 会导致问题。它被导入到我需要使用的网络管理器类中,因为每当调用此快捷方式时,我都需要将某些内容推送到服务器。我正在使用 RestKit 与我的 RESTful 服务器通信。

【问题讨论】:

【参考方案1】:

这篇 SO 帖子帮助为我解决了这个问题...

UIApplication.sharedApplication not available

我尝试将 Require Only AppExtension-Safe 设置为 NO。但我仍然有这个问题。但这让我明白这不是一个简单的解决方法。

然后,我移除了导致问题的一个 cocoapod(在本例中为 RestKit),然后能够连接其他所有东西。对于这种特殊情况,我不得不稍微修改我的网络代码,以便它不使用 RestKit。对于这个实例,我使用 CocoaAsyncSocket 并以这种方式手动发布我的请求。不是最好的,因为它在代码中有点混乱,但必须这样做。除非 RestKit 取消了这个要求。

【讨论】:

以上是关于Siri 快捷方式和 CocoaPods - 未找到文件的主要内容,如果未能解决你的问题,请参考以下文章

如何检查我的应用程序是不是通过 Siri 快捷方式恢复

我的应用程序如何打开 Siri 快捷方式记录短语视图

本地化 Siri 捐赠的快捷方式

Apple Watch 中的 Siri 快捷方式集成

SIRI 不会根据提供的参数回话,而是打开“快捷方式”应用程序

markdown Siri的快捷方式