- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
自 2010 年以来,我就有一个现有的应用程序,对于 iOS 10,现在要求该应用程序在 Info.plist
中包含字符串描述用法,如此处解释: http://useyourloaf.com/blog/privacy-settings-in-ios-10/
但是,我已经在我的 Info.plist 中添加了相应的键。尽管如此,当应用程序尝试访问日历时,用户仍然报告应用程序崩溃。其中一位用户现在设法向我发送了一份崩溃报告,如下所示:
Termination Reason: TCC, This app has crashed because it attempted to access
privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSContactsUsageDescription key with a string value explaining to the user how the app uses this data.
Triggered by Thread: 2
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x00000001812501a8 0x18124f000 + 4520
1 libdispatch.dylib 0x000000018113b7ec 0x181128000 + 79852
2 Contacts 0x000000018aa2c63c 0x18a9c8000 + 411196
3 Contacts 0x000000018a9f7c40 0x18a9c8000 + 195648
4 Contacts 0x000000018aa08578 0x18a9c8000 + 263544
5 EventKitUI 0x000000018f18b5a4 0x18f169000 + 140708
6 EventKitUI 0x000000018f2a9628 0x18f169000 + 1312296
7 EventKitUI 0x000000018f2aa3a8 0x18f169000 + 1315752
8 UIKit 0x000000018843b1b4 0x1880e8000 + 3486132
现在的问题是,为什么我的应用程序需要访问联系人,但我的应用程序只想读/写日历?
在崩溃代码中,我打开了一个 EKCalendarChooser
,之前我使用 eventStore requestAccessToEntityType:EKEntityTypeEvent completion:(...)
请求用户许可
在我的 Info.plist 中我有:
<key>NSCalendarsUsageDescription</key>
<string>Storing of leave data</string>
那么我该如何解决这个问题呢?我必须添加 NSContactsUsageDescription
如崩溃报告所示?为什么?它是否会导致弹出联系人访问提示,大多数用户可能认为这是一件坏事?
注意:最奇怪的是,在我的所有设备上都无法重现这种崩溃,我只有几个用户报告了这种崩溃。
最佳答案
我刚刚遇到了同样的问题,我相信这是因为 EKCalendarChooser 可以显示您的哪些联系人正在共享日历。我刚刚关闭了所有共享,包括从 iCloud 家庭中删除家庭成员,它不再需要访问通讯录。然后,我尝试使用 EKCalendarChooser 与联系人共享日历,并在我选择联系人后提示我获得许可。
这有点麻烦,但解决方案可能是继续添加使用说明,告诉用户需要许可才能显示/修改日历共享详细信息。另一种(更痛苦的)替代方法是创建您自己的 View 来选择日历。
我不确定这是 Apple 故意的还是一个错误,因为我不知道开发人员是否有任何方法可以从 EKCalendarChooser View 访问联系信息。
关于ios - EventKitUI/EKCalendarChooser 需要访问联系人 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40058900/
这个问题在这里已经有了答案: Presenting modal view occasionally hides the navigation bar (4 个答案) 关闭 3 年前。
是否可以在 EKCalendarChooser 中显示启用添加新日历,就像默认的 iPhone 日历应用程序在左上角显示 + 并允许您定义日历一样? 最佳答案 经过多次尝试,我终于明白了: var c
我正在使用 iOS 7.1 并执行以下操作以使用 EventKit 向用户呈现可写日历: EKEventStore *eventStore = [[EKEventStore alloc] init];
我在弹出窗口中显示 EKCalendarChooser。当用户在选择器中选择一个日历时,我得到它的 calendarIdentifier。到目前为止一切都很顺利,但是当您重新打开弹出窗口时,选择器中的
我正在尝试使用 EKCalendarChooser 来获取用户选择的多个日历。这就是我提出观点的方式: EKCalendarChooser* dvc= [[[EKCalendarChooser all
自 2010 年以来,我就有一个现有的应用程序,对于 iOS 10,现在要求该应用程序在 Info.plist 中包含字符串描述用法,如此处解释: http://useyourloaf.com/blo
我执行以下代码让用户选择多个日历用于我的记事本应用程序。直到iOS 10.3.1,才没有问题。在 11.0.2 上,它仍在实际设备上工作。但是,从 11.1 开始,它会因以下错误而崩溃。 *** T
我有一个 EKCalendarChoosere,它允许我选择日历。我看到日历和委托(delegate)方法 (EKCalendarChooserDelegate) 被调用。但是,当我访问日历选择器的选
每个人。 我在做什么:我正在编写一个程序,在适用于 iOS 和 macOS 的 SwiftUI 中执行各种与日期和时间相关的事情。当前版本的 UI 是用 SwiftUI 编写的。由于我的程序可以使用
我是一名优秀的程序员,十分优秀!