gpt4 book ai didi

macos - mojave 不提示用户访问联系人

转载 作者:行者123 更新时间:2023-12-03 17:46:26 31 4
gpt4 key购买 nike

我有一个在 10.9 及更高版本上运行的 macOS 应用程序,它允许用户在其联系人(又名地址簿)中“查找”人员,例如:[ABAddressBook 共享AddressBook]

在 10.14 之前的版本中使用过我的应用程序的用户已在我的应用程序的 TCC 数据库中拥有一个条目,并且可以按预期在安全和隐私中打开和关闭联系人访问权限。

在 10.14 中首次运行该应用程序的新用户不会收到是否允许访问的提示。我已阅读有关 Mojave 的隐私更改的所有内容,但据我所知,对此类联系人的访问权限没有改变……或者确实改变了?有什么办法强制提示吗?

更新:出于好奇,我使用"new"(与 ABAddressBook 相比)联系人框架添加了以下代码,但我仍然无法收到弹出窗口,要求允许我的应用程序获得权限。

if ([CNContactStore class]) {
CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];
NSLog(@"haveAccessToContacts: authorizationStatus-%ld", status);
if (status == CNAuthorizationStatusAuthorized)
return 1;
CNContactStore *contactStore = [[CNContactStore alloc] init];
[contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
NSLog(@"Contacts request granted: %@", granted ? @"YES" : @"NO");
if (error)
NSLog(@"error: %@", error);
}];
return 2;
} else {
ABAddressBook *newAB = [ABAddressBook sharedAddressBook];
if (newAB != nil)
return 1;
}
return 0;

输出为:联系人请求已获批准:否

错误:错误域=CNErrorDomain代码=100“访问被拒绝”UserInfo={NSLocalizedDescription=访问被拒绝,NSLocalizedFailureReason=此应用程序未被授予访问联系人的权限。

并且应用程序名称仍然没有显示在安全和隐私中

最佳答案

检查您的 info.plist 是否包含请求联系人权限的 key 。如果缺少,请将其包含在您的应用程序 info.plist 中

<key>NSContactsUsageDescription</key>
<string>This app requires contacts access to function properly.</string>

将消息字符串更改为更适合您的情况。

关于macos - mojave 不提示用户访问联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916731/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com