Firebase在传送到itunes connect后会导致出现"缺少推送通知权限"的问题

bat*_*gun 42 apple-push-notifications admob ios firebase

您可能知道,Google开始使用Firebase作为分析,因此我想在我当前的项目中使用它.我成功完成了实施并将项目上传到iTunes Connect.但是我收到了下面的邮件.我不想使用Firebase的push notificaiton选项,但它包含在SDK中.我需要将其删除吗?怎么样?它会导致被拒绝审查吗?

亲爱的开发者,

我们发现了您最近发布的"即时宝贝梦"的一个或多个问题.您的投放成功,但您可能希望在下次投放时更正以下问题:

缺少推送通知权利 - 您的应用似乎包含用于向Apple推送通知服务注册的API,但应用签名的权利不包括"aps-environment"权利.如果您的应用使用Apple推送通知服务,请确保在配置门户中为推送通知启用了您的应用ID,并在使用包含"aps-environment"权利的配置配置文件对应用进行签名后重新提交.有关详细信息,请参阅"本地和推送通知编程指南"中的"供应和开发".如果您的应用不使用Apple推送通知服务,则无需执行任何操作.您可以从将来的提交中删除API以停止此警告.如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息.

纠正问题后,您可以使用Xcode或Application Loader将新二进制文件上传到iTunes Connect.

问候,

App Store团队

Swi*_*y89 38

如果您使用的库具有对推送通知API的任何调用,并且您没有配置文件/证书使您的应用程序能够接收推送通知,那么您将收到来自Apple的此电子邮件.但是,如果你没有需要在您的应用程序使用推送通知,那么你可以忽略此电子邮件.

此电子邮件并不意味着您的应用将被拒绝.我曾经一直在提交使用Unity制作的游戏并使用某个Prime31插件获取本机功能时收到此电子邮件,它还使用推送通知API,这使我收到此电子邮件.

你可以忽略它,它会没事的.

  • 这是一个很好的答案,但不能解决问题.您可以执行哪些操作来禁用Firebase库中的通知? (7认同)
  • 正如您从 Apple 收到的电子邮件中所说,您应该联系 api 的作者来解决问题或提供有关如何解决此问题的文档:“如果您使用第三方框架,您可能需要联系开发人员以获取解决方案。”有关删除 API 的信息。” (2认同)

Emm*_*ett 8

如果您使用Firebase,但不使用Firebase推送通知,则为避免此警告,应禁用应用程序委托混淆。只需将FirebaseAppDelegateProxyEnabled BOOL键(值为NO)添加到您的Info.plist。而且您将来的发行版本将不会有任何关于Push通知的警告。

例

  • 你是怎么想到这个的?它是否会破坏其他任何东西,这是该键/值的预期目的吗? (2认同)
  • 不幸的是,这个键不能解决问题。但我认为,您可以尝试朝这个方向探索问题,因为如果启用了 app delegate swizzling,这意味着 Firebase SDK 将尝试在引擎盖下自动调用 UIApplication.shared.registerUserNotificationSettings 方法,而无需您的操作。您可以在此链接中找到有关 swizzling 的更多信息:https://firebase.google.com/docs/cloud-messaging/ios/client (2认同)

Yev*_*nin 7

解:

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

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