我刚刚从iOS 10 GM版本开始面对这个问题。我收到一封电子邮件,说:
要处理您的交货,必须更正以下问题:
这个应用程式尝试存取没有使用说明的隐私权敏感资料。应用程序的Info.plist必须包含NSCameraUsageDescription键,该键具有字符串值,该字符串值向用户说明应用程序如何使用此数据。
完成所需的更正后,您可以重新交付更正后的二进制文件。
问候,
App Store团队
我正在使用google GoogleSignIn。我没有使用Firebase,但是在将GoogleSignIn与可可豆荚一起安装时,我在日志中看到它自动安装了Firebase。
除了必须定义这些键之外,我们还有其他事情可以做吗,因为我的应用与相机/照片等无关,因此我不希望用户认为我们正在使用它们。
我注意到其他人也遇到了这个问题:https :
//forums.developer.apple.com/thread/62229
这是Google完整解决方法的链接:https :
//groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ
该链接上的更多信息,但TL; DR版本是必须将三个项目添加到您的plist中:
<key>NSCalendarsUsageDescription</key>
<string>Advertisement would like to create a calendar event.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Advertisement would like to store a photo.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Advertisement would like to use bluetooth.</string>
在iOS 10中,如果您在应用中使用相机或照片库,则需要添加下图提到的密钥
在iOS 10中,Apple要求在Info.plist中定义需要弹出窗口的所有功能的使用说明。参见http://useyourloaf.com/blog/privacy-settings-in-ios-10/
在Beta版程序中,如果未设置用法说明,则应用程序将在显示提示时崩溃。
看起来iTunes Connect验证工具已更改为在应用程序中查找对与权限相关对象关联的类的引用。如果没有Info.plist条目,则它们拒绝二进制文件。
我在自己的一个应用程序中看到了这一点,在该应用程序中,我在库中使用了一个旧的帮助程序方法来检测相机是否存在。即使应用程序从未调用过该方法,它也已链接到我的二进制文件中,因为我确实在同一文件中使用了另一种方法。该应用程序未使用相机,因此未定义Info.plist条目。它被拒绝了。我只是删除了我的助手方法,然后将支票移到了其他使用它的应用程序中。
但是,AdMob似乎引用了日历,因此我提交的使用广告且未使用日历本身的应用无法提交。谢谢谷歌!
您必须获得Info.Plist中Camera的许可。转到Info.plist并添加以下代码。
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
这是所有的隐私密钥,我们需要手动将它们添加到具有简短说明的Info.plist中。
• Bluetooth Sharing – NSBluetoothPeripheralUsageDescription
• Calendar – NSCalendarsUsageDescription
• CallKit – NSVoIPUsageDescription
• Camera – NSCameraUsageDescription
• Contacts – NSContactsUsageDescription
• Health – NSHealthShareUsageDescription & NSHealthUpdateUsageDescription
• HomeKit – NSHomeKitUsageDescription
• Location – NSLocationUsageDescription, NSLocationAlwaysUsageDescription, NSLocationWhenInUseUsageDescription
• Media Library – NSAppleMusicUsageDescription
• Microphone – NSMicrophoneUsageDescription
• Motion – NSMotionUsageDescription
• Photos – NSPhotoLibraryUsageDescription
• Reminders – NSRemindersUsageDescription
• Speech Recognition – NSSpeechRecognitionUsageDescription
• SiriKit – NSSiriUsageDescription
• TV Provider – NSVideoSubscriberAccountUsageDescription
编辑:请参考上面的答案https://stackoverflow.com/a/39476283/1634905
,其中列出了Google的官方解决方法。注意解决方法缺少一个额外的密钥,这也是必需的:NSCameraUsageDescription
我使用的解决方法:Google的AdMob和GoogleSignIn框架会自动安装firebase,即使该应用程序从不使用,它们也会使用此类权限。在中定义NSCameraUsageDescription
后info.plist
,它让我毫无问题地提交,希望该应用程序不会提示用户,因此他们也不会看到文本。
Google框架是否可能使用其他一些需要用户权限(即用户位置)的系统框架,而您忘记在.plist文件中添加相关描述!仔细检查一下。
在iOS 10中,某些使用权限说明已成为必填项。
已在7.11.0 https://firebase.google.com/docs/admob/release-notes上修复
确保您更新了SDK
如果您是ESRI的ArcGIS.framework,请确保添加此密钥。
文章标签:admob , firebase , google-signin , ios
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!