由于缺少信息而拒绝应用程序



我的应用程序由于丢失的信息而被拒绝。

丢失信息。Plist键 - 此应用程序尝试访问对隐私敏感的 没有使用说明的数据。该应用程序的信息必须包含一个 NSPhotolibraryUsagedEscription键,带有字符串值,解释给 用户如何使用此数据。

我知道如何"修复"它。它听起来很简单,只需在我的信息中添加 NSPhotoLibraryUsageDescription

问题是我没有使用任何应触发此要求的东西。我不想添加此描述而不知道它是

我唯一能想到的可能会导致此问题的事情是我通过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。假设我有两个目标。MainAppBetaApp。他们每个都有自己的info.plist。在betaapp的info.plist中,我包括了所需的键。在MainApp中,我没有将它们包括在内,因为Instabug在MainApp中未使用。现在,当我尝试将MainApp上传到AppStore时,我会得到此拒绝。我还尝试完全删除Instabug-Pod(即使它只是在BetaApp中),并且它仍然发生在MainApp中。

我以前从未在MainApp中拒绝过这种拒绝(这不是一个新应用,只是一个更新)。我 think 我自上次发行以来已经更新了Googlemaps,也许还有其他一些版本,但是我不知道如何找出Apple认为我必须实现NSPhotoLibraryUsageDescription的原因。

有没有办法找出我的应用程序的哪一部分触发此要求?

i 假设,如果我实现键,则永远不会触发它们,并且永远不会提示用户允许访问照片库(因为我没有尝试访问访问的代码用户的照片库),但是我想知道为什么会发生这种情况,我不愿意在我知道之前添加它。

我建议您遵循此答案中找到的说明

我知道,无缘无故地添加 NSPhotoLibraryUsageDescription键可能听起来很愚蠢,但是苹果方面的二进制验证是您无法控制的过程,因此添加此密钥更简单。

关于背景原因,我相信,Apple验证器在二进制中寻找UIImagePickerController的使用情况,而不仅仅是AssetsLibraryPhotos框架链接。因此,如果您想提交您的应用程序&已批准,您要么对此进行消毒,要么简单地添加所需的密钥。

如果您认为,您不使用它,请看一下ReactiveCocoa/UI/UIImagePickerController+RACSignalSupport.m,因此,除非您还没有准备好使用自定义exectivecocoa或避免使用它,否则您必须处理NSPhotoLibraryUsageDescription

最新更新