我正在尝试在App Store Connect上上传我们应用的新版本。在我们的旧版本中,我们已经在使用推送通知,因此,Apple Push Services的证书已经处于活动状态,并已添加到Apple Developer Portal中(如下面的屏幕快照所示)。当我们将应用程序的先前版本上传到App Store Connect时,没有问题。但是,现在,当我尝试使用Xcode将我们的新版本的应用程序上传到App Store Connect时,Xcode端未显示任何错误,并且上传成功(如下面的屏幕快照所示)。
[当我回到App Store Connect检查我上载的构建版本,以便可以将其提交以供审阅时,就是说该构建正在处理中(如下面的屏幕快照所示)。一段时间后,我收到来自App Store Connect的电子邮件,其中提到我们的构建版本存在以下问题(此问题末尾提供了详细的电子邮件):
ITMS-90683:Info.plist中缺少目的字符串
ITMS-90078:缺少推送通知权利
对于我们的应用程序的最新生成版本,提到Info.plist的ITMS-90683错误(如下所示)缺少对[[NSContactsUsageDescription,NSCalendarsUsageDescription,NSAppleMusicUsageDescription,NSMotionUsageDescription,NSSpeechRecognitiontionUsageDescriptionDescriptionInUseNSLocationAlwaysUs的描述。但是,在使用Flutter框架构建的应用程序中,我们没有专门使用这些权限。我的问题如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>AppName</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>Need to upload image</string>
<key>NSMicrophoneUsageDescription</key>
<string>Need to upload image</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Need to upload image</string>
<key>UILaunchStoryboardName</key>
<string>Launch Screen2</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>
非常感谢您的帮助。预先谢谢!
正在处理新的构建版本的App Store Connect的屏幕截图:
启用了Apple Push Services证书的Apple Developer Portal屏幕截图,该版本的早期版本使用该应用程序:
有关错误的来自App Store Connect的电子邮件:
亲爱的开发者,我们确定了您的应用的最近交付中的一个或多个问题,[APP NAME] 2.0.1(4)。请更正以下问题,然后上传再次。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码引用一个或多个访问敏感用户数据的API。该应用的Info.plist文件应包含一个NSContactsUsageDescription键,并带有一个面向用户的目的字符串清楚,完整地说明了为什么应用需要数据。从2019年春季开始,所有应用都将提交给需要访问用户数据的App Store包含目的串。如果您使用的是外部库或SDK,则它们可能会引用需要用途字符串的API。虽然您的应用可能不使用这些API,仍然需要一个目的字符串。您可以联系库或SDK的开发人员,并要求他们发布版本的他们的代码不包含API。学到更多(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码引用一个或多个访问敏感用户数据的API。该应用的Info.plist文件应包含带有以下内容的NSCalendarsUsageDescription键:面向用户的目的字符串,清楚,完整地说明了原因您的应用需要数据。从2019年春季开始,所有应用都提交给需要访问用户数据的App Store包含目的串。如果您使用的是外部库或SDK,则它们可能会引用需要用途字符串的API。虽然您的应用可能不使用这些API,仍然需要一个目的字符串。您可以联系库或SDK的开发人员,并要求他们发布版本的他们的代码不包含API。学到更多(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码引用一个或多个访问敏感用户数据的API。该应用的Info.plist文件应包含带有以下内容的NSAppleMusicUsageDescription密钥:面向用户的目的字符串,清楚,完整地说明了原因您的应用需要数据。从2019年春季开始,所有应用都提交给需要访问用户数据的App Store包含目的串。如果您使用的是外部库或SDK,则它们可能会引用需要用途字符串的API。虽然您的应用可能不使用这些API,仍然需要一个目的字符串。您可以联系库或SDK的开发人员,并要求他们发布版本的他们的代码不包含API。学到更多(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码引用一个或多个访问敏感用户数据的API。该应用的Info.plist文件应包含一个NSMotionUsageDescription键,并带有一个面向用户的目的字符串清楚,完整地说明了为什么应用需要数据。从2019年春季开始,所有应用都将提交给需要访问用户数据的App Store包含目的串。如果您使用的是外部库或SDK,则它们可能会引用需要用途字符串的API。虽然您的应用可能不使用这些API,仍然需要一个目的字符串。您可以联系库或SDK的开发人员,并要求他们发布版本的他们的代码不包含API。学到更多(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码引用一个或多个访问敏感用户数据的API。该应用的Info.plist文件应包含NSSpeechRecognitionUsageDescription带有面向用户的目的字符串的键,清楚地说明和完全说明您的应用为何需要数据。从2019年春季开始,所有应用程序提交给需要访问用户数据的App Store包括目的字符串。如果您使用的是外部库或SDK,它们可能引用需要用途字符串的API。当您的应用程序可能不使用这些API,仍然需要一个目的字符串。您可以与库或SDK的开发人员联系,并要求他们发布一个他们的代码版本不包含API。学到更多(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
尽管您不需要解决以下问题,但我们希望让您知道它们:
ITMS-90078:缺少推送通知权利-您的应用出现注册Apple Push Notification服务,但该应用程序签名的权利不包括“ aps-environment”权利。如果您的应用程序使用Apple Push Notification服务,确保在的“推送通知”中启用了您的应用IDProvisioning Portal,然后使用包含“ aps环境”的分发供应配置文件权利。 Xcode不会自动复制aps环境在构建时来自配置文件的权利。此行为是故意的。要使用此权利,请启用“推送通知”在项目编辑器的“功能”窗格中,或手动添加您的权利文件的权利。有关更多信息,请参见https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码引用一个或多个访问敏感用户数据的API。该应用的Info.plist文件应包含NSLocationAlwaysUsageDescription键面向用户的目的字符串清晰,完整地解释为什么您的应用需要数据。从2019年春季开始,所有应用都已提交到App Store要求访问用户数据包括目的字符串。如果您使用的是外部库或SDK,则它们可能需要目的字符串的参考API。虽然您的应用可能没有使用这些API,仍然需要一个目的字符串。您可以联系库或SDK的开发人员,并要求他们发布版本他们的代码不包含API。学到更多(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码引用一个或多个访问敏感用户数据的API。该应用的Info.plist文件应包含NSLocationWhenInUseUsageDescription带有面向用户的目的字符串的键,清楚地说明和完全说明您的应用为何需要数据。从2019年春季开始,所有应用程序提交给需要访问用户数据的App Store包括目的字符串。如果您使用的是外部库或SDK,它们可能引用需要用途字符串的API。当您的应用程序可能不使用这些API,仍然需要一个目的字符串。您可以与库或SDK的开发人员联系,并要求他们发布一个他们的代码版本不包含API。学到更多(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
最诚挚的问候,
App Store团队
我正在尝试在App Store Connect上上传我们应用的新版本。在我们的旧版本中,我们已经在使用推送通知,因此Apple Push Services的证书已经处于活动状态...
当我没有在我们的应用中明确使用这些权限中的任何一个,以便可以成功上传构建版本以供审阅时,如何解决ITMS-90683错误?