secTaskDiagnoseEntitlements缺少钥匙串权限:未找到存储的taskRef。

38
在两个拥有WatchKit应用程序扩展的应用中,我在启动时在设备日志中收到以下错误超过十次。
secTaskDiagnoseEntitlements MISSING keychain entitlements: no stored taskRef found

据苹果开发者论坛的人报道,这个问题也在那里被提出了。 线程在这里......

https://forums.developer.apple.com/thread/20193

但是,没有人找到任何解决方案。

有人有什么想法吗?

应用程序可以正常启动和运行,但我担心这些消息/错误可能会减缓启动速度和/或指示我未正确配置项目。


有任何新进展吗? - brush51
我在Today App Extension中看到了相同的错误。它似乎可以工作,但无法访问共享用户默认设置。但是,在非生产构建中它可以正常工作。 - AlexDenisov
https://medium.com/@emt.joshhart/solve-sectaskdiagnoseentitlements-missing-keychain-entitlements-no-stored-taskref-found-swift-d10b8bc47227 - Joshua Hart
1个回答

2

这个错误信息通常出现在应用程序尝试访问钥匙串但缺少适当的授权时。虽然这些警告不一定会影响您的应用程序操作,但它们可能表明某些钥匙串操作未按预期运行。

根据我的经验,我想与您分享一些可能解决此问题的建议:

1. 检查您的应用程序授权:确保您的应用程序及其扩展程序具有访问钥匙串所需的必要授权。您可以在Xcode中执行此操作,方法是进入项目目标 > 签名和功能 > "+ 功能" > 钥匙串共享。

2. 钥匙串组名称:钥匙串组的名称应以您的应用程序ID为前缀。例如,如果您的应用程序ID是ABCDE12345.com.mycompany.myapp,则您的钥匙串组应该类似于ABCDE12345.com.mycompany.myapp.keychainGroup。

3. 确保所有目标的正确配置:如果您的应用程序有多个目标(例如WatchKit扩展程序、小部件扩展程序等),请确保它们都具有相同的钥匙串访问组并已正确配置。

4. 正确的配置文件: 确保每个目标都使用了正确的配置文件。不正确的配置文件可能会导致钥匙串访问问题。

5. 应用程序组: 如果您正在使用应用程序组在应用程序和其扩展之间共享数据,请确保其已正确配置。这是一个常见的陷阱。

6. 清理和重新构建: 有时,Xcode 可能会存在一些缓存问题,这可能会导致此类错误。因此,请进行清理构建文件夹 (Shift+Cmd+K) 并重建项目。

请记住,为了使钥匙串项目在应用程序之间或应用程序和其扩展之间共享,它们必须在其授权中具有公共的钥匙串访问组,并且所有应用程序和扩展都必须由同一开发团队签名。

如果在执行所有这些步骤之后,警告仍然存在,那么它可能只是苹果记录系统中的一个 Bug。在这种情况下,您可以安全地忽略它。


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