简体   繁体   English

Xcode8提交错误-如何找出iOS10上到底需要哪些特定权限

[英]Xcode8 submission error - how to find out what exactly requires specific permissions on iOS10

When trying to submit the app, I get the following error: 尝试提交应用程序时,出现以下错误:

This app attempts to access privacy-sensitive data without a usage description. 此应用尝试尝试访问不敏感隐私的数据,而没有使用说明。 The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data. 应用程序的Info.plist必须包含NSCalendarsUsageDescription键,该键具有字符串值,该字符串值向用户说明应用程序如何使用此数据。

I know I could just add a description to make the new validator happy, but my app doesn't use the user calendar, so I'd rather eliminate the dependency that uses it, if possible. 我知道我可以添加一个描述使新的验证器满意,但是我的应用程序不使用用户日历,因此,如果可能的话,我宁愿消除使用它的依赖关系。 I wasn't able to figure out how do I find out which dependency actually uses the calendar, how do check this? 我无法弄清楚如何确定哪个依赖项实际上使用了日历,如何进行检查?

My project has the following dependencies: 我的项目具有以下依赖关系:

pod 'SnapKit', '0.22.0'
pod 'FBSDKCoreKit'
pod 'Alamofire', '~> 3.5'
pod "AFNetworking", '~> 3.1'
pod 'SDWebImage'      
pod 'TTTAttributedLabel'
pod 'Masonry'
pod 'CocoaLumberjack/Swift', '2.3'
pod 'SZTextView'
pod 'HockeySDK', :subspecs => ['CrashOnlyLib']
pod 'GoogleMaps'
pod 'BugfenderSDK'
pod 'AppsFlyerFramework', '4.5.0'
pod 'CHTCollectionViewWaterfallLayout'
pod 'Firebase'
pod 'Firebase/Messaging'
pod 'CRToast', '~> 0.0.7'
pod 'Google-Mobile-Ads-SDK'
pod 'UIColor_Hex_Swift', :git => 'https://github.com/yeahdongcn/UIColor-Hex-Swift.git', :tag => '2.3'

And the linked frameworks: 以及链接的框架:

链接框架列表

So I have contacted Apple, and they actually have a nice list of all the APIs and the permissions that they require. 因此,我联系了Apple,他们实际上为所有API及其所需的权限提供了一个不错的清单。 You can find it here (Technical Q&A QA1937) . 您可以在这里找到它(技术问答QA1937)

i think it's helpful for information for you. 我认为这对您的信息很有帮助。

I can see in Google-Mobile-Ads-SDK file that it references the libraries associated with these permissions. 我可以在Google-Mobile-Ads-SDK文件中看到它引用了与这些权限关联的库。 and also Google's frameworks for AdMob and GoogleSignIn installs firebase automatically which uses such permissions even though the app never does. 以及Google的AdMob和GoogleSignIn框架会自动安装firebase,它会使用此类权限,即使该应用程序从未使用过。 After I defined NSCameraUsageDescription in the info.plist, it let me submit without problem hoping that the app won't prompt the user ever so they won't see the text either. 在info.plist中定义了NSCameraUsageDescription之后,它让我毫无问题地提交,希望该应用程序不会提示用户,因此他们也不会看到文本。

Many Advertising SDKs, such as AdMob, have EventKit as a required framework. 许多广告SDK(例如AdMob)都将EventKit作为必需的框架。 Until then you can workaround by adding NSCalendarsUsageDescription to your info.plist. 在此之前,您可以通过将NSCalendarsUsageDescription添加到info.plist来解决。 I also had to do the same with NSBluetoothPeripheralUsageDescription 我还必须对NSBluetoothPeripheralUsageDescription做同样的NSBluetoothPeripheralUsageDescription

Edit: Very important to also add the NSPhotoLibraryUsageDescription one as well see: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ios/UmeVUDrcDaw 编辑:非常重要,也要添加NSPhotoLibraryUsageDescription,请参阅: https ://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ios/UmeVUDrcDaw

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM