iOS 应用程序 (MobileFirst) 被 Apple (NSPhotoLibraryUsageDescription) 拒绝
iOS app (MobileFirst) is rejected by Apple (NSPhotoLibraryUsageDescription)
我们的 iOS 混合移动应用程序(使用 MobileFirst 7.1 开发)最近被 Apple 拒绝:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
但是,该应用程序不使用照片库。因此,问题应该来自我们使用的库之一。除了 CordovaLib(MobileFirst 自带),我们还使用 email-composer (cordova-plugin-email-composer)、PushPlugin (https://github.com/phonegap-build/PushPlugin) and barcodescanner (https://github.com/phonegap/phonegap-plugin-barcodescanner)。 Barcodescanner 需要相机访问权限(密钥在提交前包含在 Info.plist 中),但不需要照片库访问权限。对于其他两个插件,他们的网页上没有关于 iOS 10 的信息,而且他们的用例与照片库相去甚远。
所以,问题是:
- cordovaLib 会导致这样的问题吗? (移动优先)
- 相机访问是否以某种方式连接到照片库? (例如,使用相机隐含地需要访问照片库)
- 如何检查导致此类问题的确切原因?是否有工具可以提前告知使用某些 class 会导致隐私设置出现问题?
P.S。我知道我可以将 NSPhotoLibraryUsageDescription 键添加到 Info.plist,但这不是我想要的:应用程序不需要照片库,我不想添加这样的键。
由于堆栈溢出限制,无法 post link 到电子邮件编辑器。
这里有一篇博客 post 讨论了为什么会发生这种情况:http://cordobo.com/2256-fix-ioniccordova-app-ios-10-nscamerausagedescription-permission/。笔者恰好也用到了条码扫描器,还有Cordova。几乎是一样的情况。
这是由于 Apple 从 iOS10 开始的新政策而发生的变化。
与博客 [=24=] 不同,它建议删除并重新添加相机插件 - 因为在 MobileFirst 中您不能自己执行此操作,我建议手动进行更改。我所说的更改是指在 config.xml 文件中添加描述标签和您想要的文本,然后再次尝试提交申请。
如果还是不行,建议开个PMR给IBM的support帮忙
另请注意,可能还有其他插件需要描述文本处理。在最近的博客 post 中查看 Apache Cordova 的以下更改日志。搜索 iOS 个更改。
所以,答案是:MobileFirst 附带的嵌入式 Cordova 插件导致了问题。在没有 barcodescanner 但使用这些插件的情况下提交到 TestFlight 失败并出现同样的问题。删除嵌入式插件解决了问题并接受了提交。
https://mobilefirstplatform.ibmcloud.com/blog/2016/10/25/supporting-privacy-changes-in-ios-10/
P.S。例如,不清楚为什么只有照片库有问题而通讯录没有问题,但无论如何它都有效。
根据您的拒绝邮件或错误日志添加权限,更新您的Info.plist文件。
NSPhotoLibraryUsageDescription
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) photos and video use.</string>
或
解决隐私敏感数据应用拒绝
https://developer.apple.com/library/content/qa/qa1937/_index.html
我们的 iOS 混合移动应用程序(使用 MobileFirst 7.1 开发)最近被 Apple 拒绝:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
但是,该应用程序不使用照片库。因此,问题应该来自我们使用的库之一。除了 CordovaLib(MobileFirst 自带),我们还使用 email-composer (cordova-plugin-email-composer)、PushPlugin (https://github.com/phonegap-build/PushPlugin) and barcodescanner (https://github.com/phonegap/phonegap-plugin-barcodescanner)。 Barcodescanner 需要相机访问权限(密钥在提交前包含在 Info.plist 中),但不需要照片库访问权限。对于其他两个插件,他们的网页上没有关于 iOS 10 的信息,而且他们的用例与照片库相去甚远。
所以,问题是:
- cordovaLib 会导致这样的问题吗? (移动优先)
- 相机访问是否以某种方式连接到照片库? (例如,使用相机隐含地需要访问照片库)
- 如何检查导致此类问题的确切原因?是否有工具可以提前告知使用某些 class 会导致隐私设置出现问题?
P.S。我知道我可以将 NSPhotoLibraryUsageDescription 键添加到 Info.plist,但这不是我想要的:应用程序不需要照片库,我不想添加这样的键。 由于堆栈溢出限制,无法 post link 到电子邮件编辑器。
这里有一篇博客 post 讨论了为什么会发生这种情况:http://cordobo.com/2256-fix-ioniccordova-app-ios-10-nscamerausagedescription-permission/。笔者恰好也用到了条码扫描器,还有Cordova。几乎是一样的情况。
这是由于 Apple 从 iOS10 开始的新政策而发生的变化。
与博客 [=24=] 不同,它建议删除并重新添加相机插件 - 因为在 MobileFirst 中您不能自己执行此操作,我建议手动进行更改。我所说的更改是指在 config.xml 文件中添加描述标签和您想要的文本,然后再次尝试提交申请。
如果还是不行,建议开个PMR给IBM的support帮忙
另请注意,可能还有其他插件需要描述文本处理。在最近的博客 post 中查看 Apache Cordova 的以下更改日志。搜索 iOS 个更改。
所以,答案是:MobileFirst 附带的嵌入式 Cordova 插件导致了问题。在没有 barcodescanner 但使用这些插件的情况下提交到 TestFlight 失败并出现同样的问题。删除嵌入式插件解决了问题并接受了提交。
https://mobilefirstplatform.ibmcloud.com/blog/2016/10/25/supporting-privacy-changes-in-ios-10/
P.S。例如,不清楚为什么只有照片库有问题而通讯录没有问题,但无论如何它都有效。
根据您的拒绝邮件或错误日志添加权限,更新您的Info.plist文件。
NSPhotoLibraryUsageDescription
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) photos and video use.</string>
或
解决隐私敏感数据应用拒绝
https://developer.apple.com/library/content/qa/qa1937/_index.html