尝试访问联系人时,应用程序因__CRASHING_DUE_TO_PRIVACY_VIOLATION__而崩溃

Bir*_*sky 38 ios cordova

更新到iOS 10后,当尝试通过插件cordova-plugin-contacts v2.2.0 访问联系人时,应用程序退出

__CRASHING_DUE_TO_PRIVACY_VIOLATION__

我不知道我现在可以提供什么其他额外信息,请让我知道我是否可以更具体.感谢名单.

也许这有一些用处:https://stackoverflow.com/a/39416858/592641,但我找不到如何在cordova中指定这些用法说明的指南.

Nev*_*ess 35

创建xcode项目并找到Info.Plist文件后,您可以尝试添加NSContactsUsageDescription键,该键应接受字符串值.

Cocoa Keys的完整列表

希望有所帮助!

编辑

来自doc的一部分:(可以帮助你理解崩溃的原因)

重要提示:为了保护用户隐私,iOS 10.0上或之后链接的iOS应用程序访问用户的联系人,必须静态声明这样做的意图.在应用程序的Info.plist文件中包含NSContactsUsageDescription键,并为此键提供目的字符串. 如果您的应用尝试在没有相应目的字符串的情况下访问用户的联系人,则您的应用会退出.


小智 8

我的应用程序缺少NSFaceIDUsageDescription


Bir*_*sky 6

简而言之,需要在内部指定用法说明 *info.plist

这对Cordova代码库没有好处,因为.plist文件不是存储库的一部分.我发现将它们放在config.xml中的最简单方法是这样的:

  1. 安装cordova-custom-config
  2. 在config.xml中添加以下内容:

.

<platform name="ios">
    <config-file parent="NSContactsUsageDescription" target="*info.plist">
      <string>Easily invite your friends</string>
    </config-file>
</platform>
Run Code Online (Sandbox Code Playgroud)


Cli*_*udo 6

我的 Info.plist 丢失了NSPhotoLibraryAddUsageDescription。现在有两个与照片库相关的权限(从 iOS 11 开始):

  • NSPhotoLibraryUsageDescription - 访问照片库
  • NSPhotoLibraryAddUsageDescription - 只写照片库的权限

我在 iOS 11 之前获得了第一个权限,当时它是使用照片库所需的唯一密钥。显然在 iOS 11 中,他们添加了第二个,并要求将照片添加到库中。因此,如果您支持 iOS 10 但不包含第二个密钥,您将在 iOS 11 上崩溃。

所有的钥匙都在这里