【问题标题】:iOS app (MobileFirst) is rejected by Apple (NSPhotoLibraryUsageDescription)iOS 应用程序 (MobileFirst) 被 Apple 拒绝 (NSPhotoLibraryUsageDescription)
【发布时间】:2017-03-02 11:30:40
【问题描述】:

我们的 iOS 混合移动应用程序(使用 MobileFirst 7.1 开发)最近被 Apple 拒绝:

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

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

所以,问题是:

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

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

【问题讨论】:

  • MobileFirst 是否提供自己的相机访问方式?
  • 没有。 SDK 使用 Cordova,但混合应用程序由 MobileFirst 工具生成(例如,定义插件的项目的 config.xml 文件)。

标签: ios cordova ibm-mobilefirst ios10 testflight


【解决方案1】:

这里有一篇博文讨论为什么会这样:http://cordobo.com/2256-fix-ioniccordova-app-ios-10-nscamerausagedescription-permission/。作者碰巧也使用了条形码扫描仪和 Cordova。情况几乎相同。

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

与建议删除并重新添加相机插件的博客文章不同 - 由于在 MobileFirst 中您无法自行执行此操作,我建议手动进行更改。通过更改,我的意思是在 config.xml 文件中添加带有所需文本的描述标签,然后再次尝试提交应用程序。

如果仍然失败,我建议为 IBM 支持打开 PMR 以提供帮助。

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

【讨论】:

  • 非常感谢您的回答!这不正是我要找的。我知道条形码插件需要相机,并且在提交之前我已经将密钥添加到 Info.plist。据我了解,对 config.xml 文件的更改只会在重建环境后自动将密钥添加到 Info.plist 中。问题在于照片库访问,而不是相机访问。我无法真正理解哪些插件需要照片库,因为我们没有在我们的项目中使用它。用描述添加key不是问题,问题是要了解哪些插件隐式使用它。
  • 据我所知,条形码需要相机,而相机可能需要图库。我认为这一切都在一起。你不能分开需要AFAIK。 Cordova 社区可能知道得更多,但这也是我建议您开设 PMR 的方式。
【解决方案2】:

因此,答案是:MobileFirst 附带的嵌入式 Cordova 插件会导致问题。在没有条形码扫描仪但使用这些插件的情况下提交到 TestFlight 失败并出现同样的问题。删除嵌入式插件解决了问题并接受了提交。

https://mobilefirstplatform.ibmcloud.com/blog/2016/10/25/supporting-privacy-changes-in-ios-10/

附:例如,目前尚不清楚为什么只有照片库有问题,而联系人没有问题,但无论如何它都有效。

【讨论】:

    【解决方案3】:

    通过添加基于您的拒绝邮件或错误日志的权限来更新您的Info.plist文件。

    NSPhotoLibraryUsageDescription

    <key>NSPhotoLibraryUsageDescription</key>
        <string>$(PRODUCT_NAME) photos and video use.</string>
    

    解决隐私敏感数据应用拒绝

    https://developer.apple.com/library/content/qa/qa1937/_index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      • 2015-11-13
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多