iOS 应用程序 (MobileFirst) 被 Apple 拒绝 (NSPhotoLibraryUsageDescription)

标签 ios cordova ibm-mobilefirst ios10 testflight

我们的 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.

但是,该应用程序不使用照片库。因此,问题应该来 self 们使用的库之一。除了 CordovaLib(随 MobileFirst 一起提供),我们还使用 email-composer (cordova-plugin-email-composer)、PushPlugin ( https://github.com/phonegap-build/PushPlugin) 和 barcodescanner (https://github.com/phonegap/phonegap-plugin-barcodescanner)。 Barcodescanner 需要相机访问权限( key 在提交前包含在 Info.plist 中),但不需要照片库访问权限。对于另外两个插件,他们的网页上没有关于 iOS 10 的信息,而且他们的用例与 Photo Library 相去甚远。

所以,问题是:

  • cordovaLib 会导致这样的问题吗? (移动优先)
  • 相机访问是否以某种方式连接到照片库? (例如,使用相机隐含地需要访问照片库)
  • 如何检查导致此类问题的确切原因?是否有一种工具可以提前告知使用某些类会导致隐私设置出现问题?

附言我知道我可以将 NSPhotoLibraryUsageDescription 键添加到 Info.plist,但这不是我想要的:应用程序不需要照片库,我不想添加这样的键。 由于堆栈溢出限制,无法发布指向 email-composer 的链接。

最佳答案

这是一篇讨论为什么会发生这种情况的博文:http://cordobo.com/2256-fix-ioniccordova-app-ios-10-nscamerausagedescription-permission/ .笔者恰好也用到了条码扫描器,还有Cordova。情况几乎相同。

这是由于 Apple 从 iOS 10 开始的新政策而发生的变化。

与建议删除并重新添加相机插件的博客文章不同 - 由于在 MobileFirst 中您无法自行执行此操作,我建议手动进行更改。我所说的更改是指在 config.xml 文件中添加描述标签和您想要的文本,然后再次尝试提交申请。

如果还是不行,我建议开一个PMR,让IBM的support帮帮忙。

另请注意,可能还有其他插件需要描述文本处理。在最近的一篇博文中查看 Apache Cordova 的以下更改日志。搜索 iOS 更改。

关于iOS 应用程序 (MobileFirst) 被 Apple 拒绝 (NSPhotoLibraryUsageDescription),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154869/

相关文章:

ios - UIImageView隐藏时消耗内存? (iOS)

ibm-mobilefirst - 在 MobileFirst 7 中部署项目环境时遇到问题

mysql - Worklight SQL 查询

android - 在 Worklight 控制台上找不到后退按钮

android - 无法摆脱这个错误。我正在尝试使用 cordova 构建移动优先应用程序。错误 : You must be in a MobileFirst project to execute this command

javascript - 表达式 '$.cookie' [undefined] 的结果不是函数

ios - Cordova 错误 : "not a valid target for emulator"

ios - 使用 Swift 设置自定义表格 View 页脚

ios - 如何: Display MKOverlay on MKMapView

java - Cordova 3 Android 插件 - 如何在主要 Activity 中调用函数?