SiriKit 崩溃:"使用应用程序中的类需要 com.apple.developer.siri 权限。"

8
我们一直收到崩溃报告,显示“从应用程序使用INPreferences类需要com.apple.developer.siri授权。您是否在Xcode项目中启用了Siri功能?”。但是我们已经完全在Xcode中启用了Siri功能,并且APP ID 确实支持Siri功能,否则我们的应用程序一直会崩溃。那么,为什么只有一些设备会崩溃呢?这让我们很困扰。
有人知道原因或遇到过同样的问题吗?如果您能提供帮助,我们将不胜感激。
以下是崩溃日志:
0 CoreFoundation 0x000000018b6fd1b8 ___exceptionPreprocess + 124  
1 libobjc.A.dylib 0x000000018a13455c objc_exception_throw + 44  
2 Intents 0x00000001a4cd55ac -[INPreferences _siriAuthorizationStatus]  
3 libdispatch.dylib 0x000000018a5861bc __dispatch_client_callout + 16  
4 libdispatch.dylib 0x000000018a586fb0 dispatch_once_f + 56  
5 Intents 0x00000001a4cd51d8 -[INPreferences assertThisProcessHasSiriEntitlement] + 112  
6 Intents 0x00000001a4cd57f8 -[INPreferences requestSiriAuthorization:] + 96  
7 Intents 0x00000001a4cd5950 +[INPreferences requestSiriAuthorization:] + 80  
8 AppName 0x0000000100589cf4 -[AppDelegate _requestAuthorizations] (CAppDelegate.m:802)  
9 AppName 0x00000001001b99dc -[SplashView p_didTransitionImageViewAnimations] (SplashView.m:234)  
10 AppName 0x0000000100a3adb0 -[SplashView p_disappearImageView] (SplashView.m:395)  
11 Foundation 0x000000018c1fa46c __NSFireDelayedPerform + 416  
12 CoreFoundation 0x000000018b6ab1d8 ___CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28  
13 CoreFoundation 0x000000018b6aaeec ___CFRunLoopDoTimer + 872   
14 CoreFoundation 0x000000018b6aa7a8 ___CFRunLoopDoTimers + 244  
15 CoreFoundation 0x000000018b6a83a4 ___CFRunLoopRun + 1572  
16 CoreFoundation 0x000000018b5d62b8 CFRunLoopRunSpecific + 436  
17 GraphicsServices 0x000000018d08a198 GSEventRunModal + 172  
18 UIKit 0x00000001916167fc -[UIApplication _run] + 684  
19 UIKit 0x0000000191611534 UIApplicationMain + 204  
20 AppName 0x00000001002a6084 main (main.m:248)  
21 libdyld.dylib 0x000000018a5b95b8 _dyld_process_info_notify_release + 36  

Use of the class <INPreferences: 0x174238980> from an app requires the entitlement com.apple.developer.siri. Did you enable the Siri capability in your Xcode project?

我也遇到了同样的问题。这是有什么特定的原因吗?当应用程序直接从XCODE运行时,它可以正常工作。但是,当使用已归档的构建时,当应用程序调用Siri权限请求时,它会崩溃。没有其他日志出现。一旦我删除Siri权限请求,它就可以正常工作。而且,当请求其他权限时,没有任何问题。 - Lijo John
2个回答

3
似乎你需要将主应用程序的数据与扩展共享,为你的应用程序打开Siri功能和应用组。此外,你还需要在developer.apple.com上为你的应用程序添加Siri功能。请注意,保留HTML标签。

enter image description here

enter image description here


我有点困惑,如果这是原因,应用程序就一直会崩溃。不过,无论如何,我会尝试这个解决方案,谢谢! - pikachu
@pikachu 试着为你的应用启用Siri功能。 - birdy

1

前往您的授权文件,确保已启用Siri功能。

enter image description here


这个对我有用。我已经在证书和功能中启用了Siri,但在将Siri添加到权利清单后,我仍然遇到了这个错误,但现在没有任何错误了。 - Koushik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接