Firebase在提交到iTunes Connect后引起“缺少推送通知权限”的问题。

49
你可能已经知道,Google开始将Firebase作为分析工具,因此我希望在当前项目中使用它。我成功完成了实现,并上传到iTunes Connect。但是我收到了下面的邮件。我不想使用Firebase的推送通知选项,但它包含在SDK中。我需要删除它吗?这会导致审核被拒绝吗?
尊敬的开发者:
我们发现您最近提交的“Instant Baby Dream”版本存在一个或多个问题。您的提交成功了,但在下次提交时您可能需要纠正以下问题:缺少推送通知授权,您的应用似乎包括API用于注册苹果推送通知服务,但应用签名的授权未包括“aps-environment”授权。如果您的应用使用苹果推送通知服务,请确保您的App ID已在Provisioning Portal中启用推送通知,并在使用包括“aps-environment”授权的发布配置文件签名您的应用后重新提交。有关更多信息,请参见本地和推送通知编程指南中的“供应和开发”。如果您的应用程序不使用苹果推送通知服务,则无需采取任何操作。您可以从将来的提交中删除API以停止此警告。如果您使用第三方框架,则可能需要联系开发人员了解有关如何删除API的信息。
在您纠正了以上问题之后,您可以使用Xcode或Application Loader将新的二进制文件上传到iTunes Connect。
谢谢, App Store团队
4个回答

58
如果你正在使用的库中调用了推送通知 API,但是没有配置允许应用接收推送通知的证书/描述文件,那么你将会收到苹果公司发送的这封电子邮件。但是如果你的应用程序 不需要 使用推送通知,则可以忽略此邮件。
这封邮件并不意味着你的应用会被拒绝。我曾经在提交使用 Unity 制作的游戏时,使用了某个 Prime31 插件进行原生功能,并且使用了推送通知 API,因此导致我收到了这封电子邮件。
你可以忽略它,一切都会没事的。

10
回答不错,但并没有解决问题。你能做什么来禁用 Firebase 库的通知? - Maetschl
2
正如您从苹果收到的电子邮件中所述,您应该联系API的作者来解决问题或提供有关如何解决此问题的文档:“如果您使用第三方框架,则可能需要联系开发人员以获取有关删除API的信息。” - Swinny89
我也收到了那封警告邮件。@Swinny89,你确定如果我忽略它会没事吗? - andri_sasuke
是的,我确定,它只是在说你正在使用一个调用通知API的框架,但如果你不使用它们,那就没问题。 - Swinny89
如果我们想要修复,我们该怎么做? - Arshad Shaik

15

解决方案:

  • 确保您的应用程序不使用Firebase Cloud Messaging
  • 在Xcode项目中,选择应用程序目标;
  • 转到 信息 选项卡(或者在 项目导航器 中选择 Info.plist );
  • 添加 FirebaseAppDelegateProxyEnabled 并将其设置为 NO
  • 转到 功能 选项卡并打开 推送通知 功能;
  • 重新生成配套文件。

目标:虽然此问题并不意味着您的应用程序会被拒绝,但该电子邮件会发送给在App Store Connect上拥有应用记录访问权限的所有人。对于公司团队账户来说,这通常意味着管理人员会收到这个“我们发现了一个或多个问题”的电子邮件。对他们来说,这通常意味着开发团队做错了什么。因此,我被要求摆脱它。


我和你一样 - anders

12

如果您正在使用Firebase,但没有使用Firebase推送通知,则为避免此警告,您应禁用应用程序委托方法混合。只需将FirebaseAppDelegateProxyEnabled BOOL密钥添加到您的Info.plist文件中,并将值设置为NO即可。这样,您未来发布的版本将不会出现任何有关推送通知的警告。

示例


2
你是怎么想到这个的?这会不会影响其他功能,而且这个键/值对的预期目的是什么? - bunkerdive
3
很遗憾,这个密钥不能解决问题。但我认为你可以尝试朝这个方向探索问题,因为如果启用了应用程序委托混编,这意味着 Firebase SDK 将在您不进行任何操作的情况下自动调用方法 UIApplication.shared.registerUserNotificationSettings。 您可以在此链接中找到有关混编的更多信息:https://firebase.google.com/docs/cloud-messaging/ios/client - Emmett

0
我也遇到了类似的问题。我添加了Firebase包,但没有使用推送通知(无论是苹果还是Firebase)。我只是忽略了那封邮件。这样做起作用了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接