【问题标题】:How do I check if an iOS distribution provisioning profile has push notifications enabled?如何检查 iOS 分发配置文件是否启用了推送通知?
【发布时间】:2012-01-05 18:13:09
【问题描述】:

我有一个应用程序应该启用推送通知,但由于某种原因没有它们。我见过其他人下载并安装该应用程序,它甚至没有提示他们允许发送推送通知。正如预期的那样,这个应用程序没有出现在他们的设置 > 通知中。

但是,在我的 iPad 上,我能够接收来自此应用的推送通知,并且它确实显示在我的设置 > 通知中。我已经删除并重新安装了该应用程序,以确保我拥有与其他人相同的东西(而不是开发版本),并且我仍然能够收到通知。

现在,这个应用程序是为一个客户编写的,他向我发送了所有配置文件(开发、临时、分发)以及能够发送推送通知所需的文件,所以我不能确定一切已正确创建。

我现在的理论是:

  • 我收到的临时配置文件是“正确创建的”(即在配置门户中的应用程序 ID 上设置 APN 后生成)
  • 我收到的分发配置文件是在为此应用设置 APN 之前生成的(因此,它没有“启用推送”)
  • 我能够在我的设备上接收推送通知的原因是在开发过程中我安装了一个临时版本,它提示我获得接收推送通知的权限,即使我已经删除这个临时版本并从商店下载了版本,设备“缓存”了我愿意接收通知并且不再提示我的事实。我检查了其他应用程序,确实,在我删除并重新安装它们后,它们不会再次提示我获得接收推送通知的权限。

所以我的问题是:

  • 这个理论有意义吗?
  • 如果是这样,这意味着我必须要求客户端生成一个新的分发配置文件。 如何验证此配置文件是否“启用推送”?(即考虑到我不能只安装使用它编译的应用)

【问题讨论】:

    标签: iphone ios push-notification apple-push-notifications


    【解决方案1】:

    好的,我可能已经找到一种方法来验证配置文件是否启用了推送。

    如果我将 .mobileprovision 文件作为文本文件打开,那里有一些 XML(显然是一个 plist),我猜测分发配置文件应该有这个:

    <key>aps-environment</key>
    <string>production</string>
    

    事实上,临时配置文件有这个,而分发配置文件没有,所以......我猜这就是问题所在。

    不过,任何反馈都会有所帮助:)

    【讨论】:

    • 在配置文件中查看 XML 部分的简单方法是在 Terminal.app security cms -D -i /path/to/AppStoreProfile.mobileprovision 中运行以下命令,然后查找相同的 aps-environment 键。
    【解决方案2】:

    略有不同,但仍然有用:当您将应用上传到 iTunes 连接时,您可以检查它是否启用了推送通知(或任何其他权利)。

    为此,请转到管理您的应用程序,选择应用程序,然后转到“查看详细信息”以查看您要检查的版本。

    从那里转到“二进制详细信息”页面 - 有一个权利字段,显示二进制文件的权利。如果启用了推送通知,您将在其中看到“aps-environment: production”行。

    【讨论】:

      【解决方案3】:

      确保在创建 aps_certificate 后生成分发配置文件。配置文件的高更改可能会错过 aps-environment

      【讨论】:

        【解决方案4】:

        我在 AppDelegate.m 中添加了以下内容,这样我就可以确切地看到在调试中启用了哪些设置

        - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
        {
          UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        NSLog(@"Receiving Notification Types: %lu", (long)enabledTypes); //0=none 1=badge 2=sound 4=alert 8=NewsStandContantAvailability
        

        我从一个非常包容和有用的链接中得到这个:Apple Push Notification Service Tutorial - Part 1 这对我很有帮助。

        【讨论】:

          猜你喜欢
          • 2016-12-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-09
          • 1970-01-01
          • 2017-01-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多