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

时间:2016-09-19 11:02:38

标签: ios cordova

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

__CRASHING_DUE_TO_PRIVACY_VIOLATION__

我不知道我现在可以提供的其他额外信息,只是让我知道我是否可以更具体。感谢名单。

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

7 个答案:

答案 0 :(得分:34)

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

A complete list of Cocoa Keys

希望有所帮助!

修改

doc中的一部分:(可以帮助您理解崩溃的原因)

  

重要提示:为了保护用户隐私,请在iOS上或之后关联iOS应用   10.0,访问用户的联系人,必须静态声明这样做的意图。包含NSContactsUsageDescription键   您的应用的Info.plist文件,并为此密钥提供目的字符串。   如果您的应用尝试访问用户的联系人而没有   相应的用途字符串,您的应用退出。

答案 1 :(得分:8)

我的应用程序缺少 NSFaceIDUsageDescription

答案 2 :(得分:6)

简而言之,需要在*info.plist

中指定用法说明

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

  1. 安装cordova-custom-config
  2. 在config.xml中添加以下内容:
  3. <platform name="ios">
        <config-file parent="NSContactsUsageDescription" target="*info.plist">
          <string>Easily invite your friends</string>
        </config-file>
    </platform>
    

答案 3 :(得分:2)

对我来说,我试图请求访问麦克风,但我还没有定义Privacy - Microphone Usage Description字符串。

进入Info.plist文件,然后向下滚动到以Privacy开头的值。确保为与应用相关的所有内容添加键和字符串值。

Screenshot of the values that start with Privacy in the info.plist

答案 4 :(得分:2)

我的Info.plist缺少NSPhotoLibraryAddUsageDescription。现在有两个与照片库关联的权限(从iOS 11开始):

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

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

All Keys are Here

答案 5 :(得分:0)

我通过Unity使用Kudan AR得到同样的错误,@ NeverHelpless的回答是目标,除了修复是NSCameraUsageDescription(添加到Info.plist并带有描述字符串)

答案 6 :(得分:0)

如果您明确知道问题是访问联系人时,请按照上面答案中的说明进行操作。

但是,如果这些操作没有帮助您,您可能需要在此处阅读有关其他可能解决方案的相关答案(如果您在应用中使用蓝牙): https://stackoverflow.com/a/60073667/457202