Mat*_*ias 6 xcode objective-c ios swift sirikit
我的应用从出来后就支持了几个 siri 快捷方式,好久没碰了。我的项目在 11.3.2 中编译和构建,但不在 11.4 中。
我得到的错误是应该从我的意图定义文件生成的类,以及我在我的意图处理程序中引用的类不再被找到。
例如,在我的意图定义文件中,我有一个名为“MyStatus”的自定义意图。
然后我有一个 MyStatusIntentHandler:
#import "MyStatusIntent.h"
@interface MyStatusIntentHandler<MyStatusIntentHandling> : NSObject
Run Code Online (Sandbox Code Playgroud)
在 11.4 中,我找不到“MyStatusIntent.h”文件。在 11.3.1 及更早版本中,它构建得很好。
我不太擅长项目配置和结构,所以我有点不知从哪里开始挖掘。如果有人有任何指示,以及 11.4 中的哪些内容可能是新的并给我带来问题,我会全力以赴。
我在混合swift+objc项目中遇到了类似的问题。
我的项目中有一个文件“Intents.intentdefinition”,用于单独的 Siri Extentsion 目标。此外,此文件包含在应用程序目标的编译中(用于使用生成的类向 UI 添加意图)。
Siri 扩展目标构建成功。
但是应用程序构建失败并显示错误:"'AnyIntent.h' not found",尽管这些文件是生成的(我已经检查过)。
我仅通过更改 Siri Extension 目标的构建设置来解决此问题
Intent Class Generation Language (INTENTS_CODEGEN_LANGUAGE)
from Automatic to Swift
Run Code Online (Sandbox Code Playgroud)
之前生成的意图头文件的所有导入我更改为
#import <SiriIntents-Swift.h>
Run Code Online (Sandbox Code Playgroud)
我进行了调查,并与 Apple 支持人员进行了交谈。事实证明,这与“遗留构建系统”有关。
一旦我在 xcode 项目设置中切换到新的构建系统,我就可以再次构建该项目。我认为,如果他们仍然支持遗留系统(他们确实这样做),它应该可以工作,但是哦,好吧。
在此处阅读如何切换: https://help.apple.com/xcode/mac/current/#/dev396bc94c7