Xcode8中的NSPhotoLibraryUsageDescription

时间:2016-09-11 02:14:54

标签: itunesconnect testflight ios10 xcode8

更新
我尝试将一个String值添加到"NSPhotoLibraryUsageDescription"enter image description here

它确实有效。我的TestFlight现在提供了构建版本。

enter image description here ps:构建版本表示构建版本

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

<小时/> 的
我已经将许多构建版本上传到iTunes Connect.But TestFlight没有显示这些构建版本 然后我在stackoverflow上搜索这个问题。我知道这是由使用说明引起的。我在Info.plist中添加了 NSPhotoLibraryUsageDescription 。 但是,Apple Store团队发送电子邮件告诉我:

  

亲爱的开发人员,

     

我们发现您最近交付的一个或多个问题&#34; Family Health Tracker&#34;。要处理您的交付,必须纠正以下问题:

     

此应用尝试在没有使用说明的情况下访问隐私敏感数据。该应用的Info.plist必须包含 NSPhotoLibraryUsageDescription 键,其中包含一个字符串值,向用户解释应用如何使用此数据。

     

一旦纠正了这些问题,您就可以重新更新已更正的二进制文件。

     

此致

     

App Store团队

他们仍然告诉我添加 NSPhotoLibraryUsageDescription

This is my Info.plist

7 个答案:

答案 0 :(得分:28)

info.plist文件的本地化可能非常无用,尤其是在您的应用中使用多种语言时。 本地化NSPhotoLibraryUsageDescriptionNSLocationWhenInUseUsageDescriptionNSCameraUsageDescription密钥的最简单方法是在InfoPlist.strings文件中对其进行描述。

  • 创建名为*.strings;
  • 的新InfoPlist个文件
  • 按文件检查器中的Localize...按钮,然后选择默认语言;
  • 在新的InfoPlist.strings文件中添加新记录。例如 用英文写的:
  

NSLocationWhenInUseUsageDescription =“位置使用说明”;

     

NSPhotoLibraryUsageDescription =“照片使用说明”;

     

NSCameraUsageDescription =“相机使用说明”;

了解更多信息Apple docs

答案 1 :(得分:7)

确保&#34; NSPhotoLibraryUsageDescription&#34;在将应用程序上传到iTunesConnect之前已分配值。

enter image description here

答案 2 :(得分:4)

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

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

答案 3 :(得分:2)

本地化Info.plist:

  • 点击Info.plist
  • 显示您的Utilities,然后点击File inspector
  • 这是一个按钮Localize,点击它。

答案 4 :(得分:1)

试试这个对我们有用,

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

有关详细信息,请参阅Best Answer

希望这会对某些人有所帮助。

答案 5 :(得分:0)

我在两个应用程序中遇到了同样的问题,该解决方案通过邮件显示itunnes连接: info.plist 审核您的文件并尝试添加以下字段:

  Privacy - Photo Library Usage Description

  Bluetooth Sharing - NSBluetoothPeripheralUsageDescription

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

这对我有用。

答案 6 :(得分:0)

missing keys与某些API相关,这些API需要在.plist键中定义一些使用说明。在添加任何密钥之前,如果您知道您的应用程序没有进行任何特定用途,我建议您查看Apple的此官方guide以识别错误的API类。作为一个例子,我只是在包含UIImagePickerController的行上发表评论。这足以让Apple获得二元拒绝;而我没有访问用户照片库。验证完此步骤后,您可以继续使用此处提到的其他解决方案。