由于缺少info.plist密钥,我的应用程序被拒绝。由于缺少info.plist密钥而被拒绝的应用程序
Missing Info.plist key - 此应用尝试访问隐私敏感的 数据,但没有使用说明。应用程序的Info.plist必须包含一个 NSPhotoLibraryUsageDescription项,其中包含一个字符串值,用于说明用户该应用程序如何使用此数据的 。
我知道如何“修复”它。这听起来很简单,只需将NSPhotoLibraryUsageDescription
添加到我的info.plist中,并说明它的用途。
问题是我没有使用任何应该触发此要求的东西。 我不想在不知道是什么的情况下添加此描述。
我能想到的唯一的事情就是现在可能会导致这个问题,我通过CocoaPods
使用的外部框架之一与它有关。
这是我podfile:
def myPods
pod 'HockeySDK', '4.1.2'
pod 'ReactiveCocoa', '2.4.7'
pod 'TTTAttributedLabel', '2.0.0'
pod 'GoogleMaps', '2.1.0'
pod 'GoogleAnalytics', '3.17.0'
end
target 'MainApp' do
myPods
end
target 'BetaApp' do
myPods
pod 'Instabug', '7.0.5'
end
我知道一个事实,即Instabug
需要此键(与话筒使用的密钥一起),但我并不总是包括Instabug,你可以看到。 假设我有两个目标; MainApp
和BetaApp
。他们每个人都有自己的info.plist
。在BetaApp的info.plist中,我包含了所需的密钥。在MainApp中,我没有包含它们,因为InstaMag未在MainApp中使用。 当我现在尝试将MainApp上传到AppStore时,我得到了这种拒绝。 我也尝试完全移除Instabug-pod(即使它仅存在于BetaApp中),并且它仍然发生在MainApp中。
我以前从未在MainApp中有过这种拒绝(这不是一个新的应用程序,只是一个更新)。 我认为我已经更新了自上次发布以来的GoogleMaps,也许还有一些其他的,但我不知道如何找出苹果认为我必须实施NSPhotoLibraryUsageDescription
的原因。
有没有办法找出我的应用的哪个部分触发了这个要求?
我假设,如果我实现了钥匙,他们将永远不会真正被触发,用户绝不会被提示允许访问照片库(因为我没有代码,尝试访问用户的照片库),但我想知道为什么发生这种情况,我不愿意增加它之前,我知道..
作为我可以看到一个pod规范** HockeySDK **使用** AssetsLibrary **和** Photos **框架的默认 – Sergey
@Sergey我注意到,以及在https://cocoapods.org/pods/HockeySDK,但因为它在** 4.1.1 **处声明 - 在那里,我必须添加info.plist键'如果您使用的是旧版本的SDK'。正如我使用** 4.1.2 **,我期望我清楚这一点.. – Sti
如果你不使用所有的功能,你可以改变你的pod文件到这个** pod“HockeySDK”,: subspecs => ['CrashOnlyLib'] **本规范不使用这个框架。 – Sergey