将Flutter应用上传到App Store Connect之后,我收到以下电子邮件警告:
亲爱的开发人员,
我们确定了您的应用最近交付的一个或多个问题, “ [APP NAME]”。您的交付成功,但您可能希望更正 下次发货时出现以下问题:
缺少推送通知权利-您的应用似乎已在Apple Push Notification服务中注册,但是该应用 签名的权利不包括“ aps-environment” 权利。如果您的应用程序使用Apple Push Notification服务, 确保在的“推送通知”中启用了您的应用ID Provisioning Portal,然后使用 包含“ aps环境”的分发供应配置文件 权利。 Xcode不会自动复制aps环境 在构建时来自配置文件的权利。此行为是 故意的。要使用此权利,请启用“推送通知” 在项目编辑器的“功能”窗格中,或手动添加 您的权利文件的权利。有关更多信息,请参见 https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1。
解决问题后,您可以使用Xcode或应用程序 加载程序可将新的二进制文件上传到App Store Connect。
最诚挚的问候,
App Store团队
我在应用程序中不使用推送通知吗?为什么会收到此警告?以及无论我在哪里,如何删除“ aps环境”权利?
注意:此App Store问题在SO上已多次出现,有时是因为人们需要添加推送通知(请参见this和this),有时是因为他们没有't(请参见this和this)。不过,就我而言,这似乎与Flutter有关,所以我要添加一个新问题。
答案 0 :(得分:6)
似乎我的修复只修复了日志。即使委托方法是动态实现的,Apple 仍会发送电子邮件。
在我们修复它之前,您现在可以做的一件事是为您的 iOS 应用启用推送通知功能。
Xcode 有一个简单的方法来做到这一点。为此,您必须在签名和功能下添加“推送通知”。 Xcode 将为您生成“Runner.entitlements
”文件。你可以关注这里
答案 1 :(得分:4)
到目前为止,Flutter仍未解决此问题。 参见Issue 9984。
虽然这不会在App Store中引起任何拒绝,但仍需要修复,并且似乎可以解决此问题(上述问题中的described):
在ios / Runner / Runner.entitlements下的文件 Runner.entitlements 中添加以下内容:
"{{ hostvars['ansible_hostname'].['ip'] }}"
答案 2 :(得分:2)
常言道,只要您真的不使用推送通知,就不会导致您的应用被拒绝。因此,您可以放心(?)忽略此警告,然后继续提交您的应用。
此问题已在GitHub here上进行了描述,并且正在讨论一种解决方案here。显然,它与使用UIApplicationDelegate
回调的Flutter相关:
- (void)application:(UIApplication*)application
didReceiveRemoteNotification:(NSDictionary*)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
我会让其他人更清楚地解释确切原因。密切关注GitHub问题。
目前,我只是忽略警告。
更新:我提交了我的应用程序,该应用程序已被接受,从那时起就没有任何问题。因此,只需忽略警告即可。