我有一个崩溃记者的应用程序,通过从ABAddressBook获取它来自动填充用户电子邮件地址。我正试图在10.8显示的对话框中获取有关意图的信息性消息,要求用户许可。根据{{3}}的建议,我已将以下内容添加到应用的Info.plist中:
<key>NSContactsUsageDescription</key>
<string>blah blah blah</string>
不幸的是,这不起作用。对话框仍然会询问,但它不会显示我的描述文本。我试过了:
但是,唉,没有运气。任何人都得到这个工作,可以给我一个关于我做错的提示?
答案 0 :(得分:2)
[更新]我发现真正的重新启动有帮助的原因。它杀死了tccd
进程,它看起来像是负责在该对话框上显示消息的罪魁祸首。
因此,只需打开活动监视器并终止tccd
进程,您的新消息就会在下次对话框显示时显示。
[旧答案] 我遇到了同样的问题并且不确定为什么(我正在完成文档所说的那样做)。我终于得到了它的工作:
下次我的应用尝试访问地址簿API时,我看到了包含我的消息的对话框。
我认为Apple必须在某处缓存该消息(要么是您想要的消息,要么是在您显示消息之前运行代码时为空字符串),并且清除它的唯一方法是重新启动。我多次尝试了前两个步骤而没有更改消息,即使我收到消息后再尝试更改它。
答案 1 :(得分:-1)
解决方案是在终端中运行以下命令:
tccutil reset AddressBook
来源:https://developer.apple.com/library/archive/qa/qa1906/_index.html