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
文件的本地化可能是非常无用的,特别是如果你在你的应用程序中使用多种语言。 用于本地化NSPhotoLibraryUsageDescription
, NSLocationWhenInUseUsageDescription
或NSCameraUsageDescription
键的最简单的方法是在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
- 这是一个button
Localize
,单击它。
试试这个对我们有用,
<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 10的info.plist的权限: https : //blog.xamarin.com/new-ios-10-privacy-permission-settings/
这对我有效。
missing keys
与某些需要在.plist键中定义的用法描述的API有关。 如果您知道您的应用程序没有提供任何具体用法,那么在添加任何键之前,我会build议您查看一下Apple的官方指南 ,以识别错误的API类。 作为一个例子,我只是在包含UIImagePickerController
的行上注释掉。 这足以得到苹果的二元拒绝; 而我没有访问用户照片库。 一旦您validation了此步骤,您可以继续使用此处提及的其他解决scheme。