代码之家  ›  专栏  ›  技术社区  ›  Suragch Shmidt

Flatter iOS应用提交问题警告:缺少推送通知权限

  •  0
  • Suragch Shmidt  · 技术社区  · 6 年前

    在将一个颤振应用上传到app Store Connect后,我收到了以下电子邮件警告:

    亲爱的开发者:,

    我们发现了您的应用程序最近交付的一个或多个问题, “[应用程序名称]”。您的交付成功,但您可能希望更正 下一次交付中的以下问题:

    缺少推送通知权限 -您的应用程序似乎已在Apple Push Notification service中注册,但 签名的权利不包括“aps环境” 权利如果你的应用使用Apple推送通知服务, 确保您的应用ID已在中启用推送通知 设置门户,并在使用 包括“aps环境”的分发资源调配配置文件 权利Xcode不会自动复制aps环境 在构建时从资源调配配置文件获得的权限。这种行为是 故意的要使用此权限,请启用推送通知 在项目编辑器的“功能”窗格中,或手动添加 你的权利文件的权利。有关更多信息,请参阅 https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1 .

    纠正问题后,可以使用Xcode或Application 加载程序将新二进制文件上载到App Store Connect。

    顺致敬意,

    应用商店团队

    我的应用程序中不使用推送通知?为什么我会收到这个警告?我该如何取消“aps环境”权利,无论是在哪里,也不管是什么?

    注: 这个应用商店问题已经多次出现,有时是因为人们需要添加推送通知(请参阅) this this )有时是因为他们没有(见 this this ).不过,在我的例子中,这似乎与颤振有关,所以我添加了一个新问题。

    1 回复  |  直到 6 年前
        1
  •  36
  •   Paresh Mangukiya    4 年前

    看来我的修复程序只修复了日志。即使委托方法是动态实现的,苹果仍然会发送电子邮件。

    在我们修复之前,你可以做的一件事就是为你的iOS应用程序启用推送通知功能。

    Xcode有一个简单的方法来实现这一点。为此,您必须添加“ 推送通知 “在 签署及;能力 .Xcode将生成“ Runner.entitlements “为您归档。您可以在这里查看

    1. 用Xcode打开ios文件夹

    2. 这个 跑步者 如果目标仍处于选中状态,请单击 签署及;能力 选项卡,然后单击 + 功能按钮。在filter字段中键入push,然后按Enter。

      enter image description here

    3. 添加推送通知权限后,您的项目应该如下所示 跑步者权利 文件将在您的项目中创建

      enter image description here enter image description here

        2
  •  55
  •   Suragch Shmidt    6 年前

    人们普遍认为,只要你真的不使用推送通知,就不会导致你的应用被拒绝。所以你可以安全地(?)忽略此警告并继续提交应用程序。

    GitHub上描述了这个问题 here ,并正在讨论解决方案 here .这显然与使用 UIApplicationDelegate 回拨:

    - (void)application:(UIApplication*)application
        didReceiveRemoteNotification:(NSDictionary*)userInfo
              fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
    

    我会让其他人更清楚地解释确切的原因。关注GitHub问题。

    现在我只想忽略这个警告。

    更新: 我提交了我的应用程序,它被接受了,从那以后就没有任何问题了。所以不要理会这个警告。

        3
  •  9
  •   Zsolt    5 年前

    到今天为止,这个问题还没有解决。 看到了吗 Issue 9984 .

    虽然这不会在应用商店中造成任何拒绝,但它仍然需要修复,而且似乎有一个解决方法(也是) described 在上述问题中:

    添加一个文件 跑步者权利 在ios/Runner/Runner下。包含此内容的权利:

    <?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>aps-environment</key>
        <string>development</string>
    </dict>
    </plist>