Xcode8中的NSPhotoLibraryUsageDescription

更新
我试图添加一个string值到"NSPhotoLibraryUsageDescription"键。
在这里输入图像说明

它的工作原理。我的testing版本现在可以在我的TestFlight上使用。

在这里输入图像说明 ps: 构build版本意味着构build版本

但我想知道为什么Apple Store只是让我为"NSPhotoLibraryUsageDescription"键添加string值而不是"Camera Usage Description""Location When In Use Usage Description" ? 以及如何本地化info.plist。



我已经上传了许多版本到iTunes Connect.But TestFlight没有显示这些版本。
然后我在stackoverflow上search这个问题。 而且我知道这是由用法描述引起的。 我在Info.plist中添加NSPhotoLibraryUsageDescription 。 不过,Apple Store团队发邮件告诉我:

亲爱的开发者

我们已经发现您最近为“家庭健康追踪器”交付的一个或多个问题。 要处理您的交付,必须纠正以下问题:

此应用程序尝试访问隐私敏感的数据,没有使用说明。 应用程序的Info.plist必须包含一个带有string值的NSPhotoLibraryUsageDescription项,向用户解释应用程序如何使用这些数据。

一旦这些问题得到纠正,您可以重新发送更正的二进制文件。

问候,

App Store团队

他们还告诉我添加NSPhotoLibraryUsageDescription

这是我的Info.plist

info.plist文件的本地化可能是非常无用的,特别是如果你在你的应用程序中使用多种语言。 用于本地化NSPhotoLibraryUsageDescriptionNSLocationWhenInUseUsageDescriptionNSCameraUsageDescription键的最简单的方法是在InfoPlist.strings文件中描述它。

  • 创build名为InfoPlist新的*.strings文件;
  • 在文件检查器中按Localize...button并select默认语言;
  • 在新的InfoPlist.strings文件中添加新logging。 例如英文:

NSLocationWhenInUseUsageDescription =“位置使用说明”;

NSPhotoLibraryUsageDescription =“照片使用说明”;

NSCameraUsageDescription =“相机使用说明”;

欲了解更多信息, 苹果文档

确保“NSPhotoLibraryUsageDescription”在将应用上传到iTunesConnect之前分配了值。

在这里输入图像说明

只需将这些行添加到您的info.plist文件

 <key>NSPhotoLibraryUsageDescription</key> <string>Photo Library Access Warning</string> //For NSPhotoLibraryUsageDescription issue. 

为了本地化Info.plist:

  • 点击你的Info.plist
  • 显示您的Utilities ,然后单击File inspector
  • 这是一个buttonLocalize ,单击它。

试试这个对我们有用,

 <key>NSPhotoLibraryUsageDescription</key> <string>This app requires access to the photo library.</string> 

欲了解更多详情,请参阅最佳答案

希望这对一些人有帮助。

我有两个应用程序相同的问题,解决scheme显示itunnes通过邮件连接: info.plist审查您的文件,并尝试添加以下字段:

  Privacy - Photo Library Usage Description Bluetooth Sharing - NSBluetoothPeripheralUsageDescription 

每个都有一个解释其使用原因的文本。 你可以在这里查看现在需要iOS 10info.plist的权限: https : //blog.xamarin.com/new-ios-10-privacy-permission-settings/

这对我有效。

missing keys与某些需要在.plist键中定义的用法描述的API有关。 如果您知道您的应用程序没有提供任何具体用法,那么在添加任何键之前,我会build议您查看一下Apple的官方指南 ,以识别错误的API类。 作为一个例子,我只是在包含UIImagePickerController的行上注释掉。 这足以得到苹果的二元拒绝; 而我没有访问用户照片库。 一旦您validation了此步骤,您可以继续使用此处提及的其他解决scheme。