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