Xamarin 使用Telerik库后缺少NSCalendarsUsageDescription密钥和目的字符串

Xamarin 使用Telerik库后缺少NSCalendarsUsageDescription密钥和目的字符串,xamarin,xamarin.forms,xamarin.ios,telerik,app-store,Xamarin,Xamarin.forms,Xamarin.ios,Telerik,App Store,我在表单项目中使用了Telerik列表视图。昨天,我通过试飞将它上传到App Store connect。它是从应用程序加载器上传的,但因以下电子邮件被苹果拒绝: 应用商店连接 亲爱的开发人员,我们发现了一个或多个最近的问题 为您的应用程序交付“Local183”。请更正以下内容 问题,然后再次上传。“Info.plist文件中缺少目的字符串。 你的应用程序代码引用了一个或多个访问敏感用户的API 数据。应用程序的Info.plist文件应包含 具有面向用户的目的字符串的NSCalendarsU

我在表单项目中使用了Telerik列表视图。昨天,我通过试飞将它上传到App Store connect。它是从应用程序加载器上传的,但因以下电子邮件被苹果拒绝:

应用商店连接

亲爱的开发人员,我们发现了一个或多个最近的问题 为您的应用程序交付“Local183”。请更正以下内容 问题,然后再次上传。“Info.plist文件中缺少目的字符串。 你的应用程序代码引用了一个或多个访问敏感用户的API 数据。应用程序的Info.plist文件应包含 具有面向用户的目的字符串的NSCalendarsUsageDescription密钥 清楚完整地解释为什么你的应用程序需要这些数据。 从2019年春季开始,所有提交到应用商店的应用程序 用户数据需要包含用途字符串。如果您使用 外部库或SDK,它们可能引用需要 目的字符串。虽然您的应用程序可能不使用这些API,但是 字符串仍然是必需的。您可以与库的开发人员联系 或者SDK,并请求他们发布一个不需要 包含API。了解更多信息 ()”

致以最良好的祝愿

应用商店团队


我没有在我的代码中使用任何日历访问代码,但他们仍然提出了这样的问题,我不知道为什么?但这在实施Telerik之前从未发生过,因为我已经将我的应用程序的2-3个版本上传到app store connect,而且从未失败过。

可能有不同的因素,检查你在app store中提到的应用程序的功能、类别和细节,有时也取决于你使用的框架,你需要小心。提供这些许可不是问题。您需要在
info.plist
文件中添加权限

NSCalendarsUsageDescription

<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) user your calendar.</string>
NSCalendarsUsageDescription
$(产品名称)使用您的日历。

欲了解更多信息,请访问第

页。实际上,它非常简单

您的应用程序(PCL)必须引用Telerik.XamarinForms.Input,因为PCL正在使用此dll,apple假定您在应用程序中使用了此dll,因此必须从他们的角度拒绝它

如何解决这个问题

首先,如果苹果认为你需要日历权限,那么你就需要日历权限

如何在info.plist文件中添加权限添加以下权限:

<key>NSCalendarsUsageDescription</key>
<string>*your_app_name* would like to access your calender</string>
NSCalendarsUsageDescription
*您的应用程序\u name*想要访问您的日历
加上这个之后,一切都会好起来的


如果查询恢复。

在xcode 9及以上版本中,找到products文件夹下的info.plist,单击它并将鼠标悬停在最后一个选项卡上,然后单击+。它将在下面添加另一行,并在左侧写上“NSCalendarsUsageDescription”,然后按tab键并写下Calendar或my app使用你的Calendar的无访问权限。左侧将自动更改为(隐私-日历使用说明)。它将解决该错误,并且生成将显示在Itunes Connect帐户上。

您曾经解决过这个问题吗?我想说,如果您不需要访问日历,您绝对不应该添加日历权限。如果有第三方组件在您不知情的情况下访问日历,您应该停止使用该组件或向他们报告问题以进行修复。永远不要请求你不能担保的权限。如果你看到的答案是2年前的,我已经向Telerik提出了一个关于这个的错误,并得到了修复。其次,他们的DLL实际上并不使用日历。这也是苹果方面的东西。该DLL没有引用任何需要
NSCalendarsUsageDescription
权限的内容,但在您将其部署到存储时,它们总是显示此错误。可能是他们的权限检测算法有问题,我不确定!