Xamarin iOS访问地址簿请求权限中断应用程序

时间:2017-04-10 08:51:02

标签: c# xamarin xamarin.ios

我正在尝试访问Xamarin.iOS应用中的地址簿,我试过这段代码:

var addressBook = AddressBook.ABAddressBook.Create(out NSError error);
if (addressBook != null)
{
    addressBook.RequestAccess((bool granted, NSError accessError) =>
    {
        if (granted)
        {
            //Do something
        }
    });
}

此代码运行到ifadressBook不为空。但是addressBook.RequestAccess(...)没有运行,应用程序退出而没有落入catch子句。

有谁知道这段代码有什么问题?如何检测此类错误,在哪里查找日志或其他内容?

我在连接到Mac和iPhone 6的Windows 10上的Visual Studio 2017中使用Xamarin

1 个答案:

答案 0 :(得分:6)

您是否在info.plist中包含了NSContactsUsageDescription键?

例如:

<key>NSContactsUsageDescription</key>
<string>Your explanation to the user</string>

不这样做通常会导致无声崩溃。

另请注意,自iOS 9起,地址簿API已被弃用,而有利于Contacts Framework。所以你可能想要实现那个。