【问题标题】:No valid 'aps-environment' entitlement string found for application on app store没有为应用商店上的应用程序找到有效的“aps-environment”权利字符串
【发布时间】:2015-02-04 02:28:30
【问题描述】:

所以我有一个名为 Dripper 的应用程序,我大约在一个月前推出,然后在几天前进行了更新。该更新添加了推送通知和一些小调整。我使用开发配置文件使用沙盒-apn 对其进行了测试,效果很好。然后我将事情切换到生产-apn 并将其推送到试飞,再次完美运行。一旦我将更新放到市场上并运行它,我注意到我没有在服务器上获得任何新的推送注册。我查看了设备的控制台日志,发现:

12 月 4 日 17:55:15 Ina-touch-it coffco[1210]:注册远程通知
12 月 4 日 17:55:15 Ina-touch-it SpringBoard[52]:没有为应用程序“Dripper”找到有效的“aps-environment”权利字符串:(null)。不会发送通知。
12 月 4 日 17:55:15 Ina-touch-it coffco[1210] <Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

我有点困惑,因为我认为 production-apn 在 ad-hoc 和应用商店构建之间的功能相同。

这是我的应用 ID 及其权利:

这是应用商店的配置文件:

【问题讨论】:

标签: ios xcode apple-push-notifications app-store entitlements


【解决方案1】:

此类问题是由于当前的配置文件不包含 APNS 信息,因为配置文件是在创建 APNS 证书之前创建的。

因此,要解决此问题,请创建一个新的 Provisioning Profile 并在 Xcode 中选择 Provisioning Profile。然后你就完成了。

另外,当您添加推送时,我相信您也更新了钥匙串中的证书。

【讨论】:

  • 我使用的配置文件是在我为生产推送 apn 创建证书之后创建的。我可以做些什么来确认它丢失或包含 apns 信息吗?
  • @Jessiah : 不.. 就像我们必须跟随苹果提供的脚步一样。
【解决方案2】:

我这样解决了这个问题:

  • 转到 Xcode“首选项”
  • 转到“帐户”标签
  • 选择我的 Apple ID 并点击“查看详细信息”
  • 点击左下角的箭头刷新
  • 点击“完成”

再试一次!

来源:

【讨论】:

  • 那么您应该在 Build Setting 中选择正确的配置文件
  • 就我而言,我需要在开发中心重新生成配置文件。然后通过 Xcode > 首选项 > 帐户 > 您的 Apple ID > 查看右上角的详细信息按钮 > 下载所有按钮再次下载所有配置文件和证书。之后它应该再次工作。
  • 我很遗憾在推送和部署的过程中出现了这么多故障。我能容忍这一切的唯一方法是 100% 手动执行所有操作,并了解 Xcode 尝试执行的操作,并通过 iPhone 配置实用程序在文件系统上管理钥匙串身份和配置文件。
【解决方案3】:

我在使用 iOS 8.0 及以上版本时遇到了同样的问题;我没有得到设备令牌并给出错误:“没有为应用程序找到有效的'aps-environment'权利字符串”

我通过以下步骤修复了它

  • 我已为应用 ID 创建了新的配置文件
  • 将其添加到 xcode 中
  • 项目转到 Xcode“首选项”
  • 转到“帐户”选项卡选择我的 Apple ID 并单击“查看详细信息”
  • 选择您的配置文件
  • 点击左下角的箭头刷新
  • 点击“完成”

现在运行这个项目肯定会成功。

【讨论】:

    【解决方案4】:

    我通过启用推送通知功能解决了这个问题。

    点击 .xcodeproj -> 功能 -> 启用推送通知

    【讨论】:

    • 在 XCode 8 中,我在本节中看到一个错误,提示需要添加一个权利文件。我点击这个来纠正它,然后它工作正常。
    • 最近才在开始在 Xcode 8 中开发时弹出并修复了它。谢谢!
    • 以前在 Xcode 7.3 上工作,但突然没有在 Xcode 8 上注册,但这通过启用推送通知功能解决了我的问题。
    • Apple 决定将这个选项隐藏在 Xcode 8.1 的深处。如果有人能找到它,请告诉我。
    • 我没有在功能列表中获得“推送通知”选项。这与 XCode 自动生成我的配置文件这一事实有关(我是 iOS 开发的新手,所以我可能错了......)。在我的应用程序在功能列表中显示推送通知之前,我必须登录我的开发人员帐户并手动创建配置文件。最后,启用它解决了这个问题。
    【解决方案5】:

    您必须启用 Target-> 功能-> 推送通知。我使用 Xcode 8 遇到过这个问题。

    【讨论】:

      【解决方案6】:

      由于某种原因,Wei 的解决方案对我不起作用。点击 Fix entitlements 时,Xcode 生成了两个文件,仍然没有运行,确实生成的 entitlements 文件是空的。

      这是(显然)由项目的 PRODUCT_NAME 相当长并且包含空格以及“ä”和“ö”字母造成的。将其更改为仅包含英文字母的简短版本后,Wei 的修复工作正常。

      【讨论】:

        【解决方案7】:

        我花了一段时间才弄清楚是什么导致了没有有效的 aps-environment 授权错误。 问题是 XCode 项目中有两个 .entitlements 文件。一个是 platform/ios//.entitlements,另一个是 platform/ios//Resources/.entitlements,只有当 XCode 配置为使用后者时,适当的权利才存在于前一个文件中。我手动更新了后一个文件,一切都开始工作了。 解决此问题的另一个选项是更改 XCode 使用的 .entitlements。这可以在 Build Settings --> Signing --> Code Signing Entitlements config param 中完成。

        我不确定为什么 XCode 中有两个 .entitlements 文件。难道是科尔多瓦推送插件创建了第二个(我正在开发一个混合科尔多瓦移动应用程序)? .entitlements 文件的正确位置是什么?

        【讨论】:

          【解决方案8】:

          关于 Xcode 9,一些答案已经过时或不完整,无法解决这个特定问题。

          以下是我要遵循的步骤:

          1. 创建配置文件

          FCM 不是推送通知的先决条件,但他们的指南非常清晰,here is the link

          要在开发过程中测试您的应用,您需要一个用于开发的供应配置文件,以授权您的设备运行尚未在 App Store 上发布的应用。

          1. 导航至 Apple 开发者会员中心并登录。
          2. 导航至证书、标识符和配置文件。
          3. 在左上角的下拉菜单中,选择 iOS、tvOS、watchOS(如果尚未选择),然后导航至 Provisioning Profiles > All。
          4. 单击 + 按钮创建新的配置文件。
          5. 选择 iOS App Development 作为配置文件类型,然后点击继续。
          6. 在下拉菜单中,选择您要使用的 App ID,然后点击继续。
          7. 选择上一步选择的App ID对应的iOS开发证书,然后点击继续。
          8. 选择要包含在配置文件中的 iOS 设备,然后单击继续。请务必选择您要用于测试的所有设备。
          9. 输入此配置文件的名称(例如 Firebase Sample App Development Profile),然后点击“生成”。
          10. 单击“下载”将配置文件保存到您的 Mac。
          11. 双击 Provisioning Profile 文件进行安装。

          2。激活推送通知功能

          1. 转到项目编辑器,来自official manual
          2. 在功能部分,激活推送通知

          【讨论】:

            【解决方案9】:

            我遇到了这个问题,并通过第一个解决方案解决了这个问题。

            但是,我失败了一次,因为我有两个苹果帐户登录。删除一个后,一切都正常了。

            【讨论】:

              【解决方案10】:

              在更高版本的 Xcode 上添加推送通知功能的导航略有变化。这里使用 12.2

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2012-11-06
                • 2012-09-20
                • 1970-01-01
                • 1970-01-01
                • 2012-06-14
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多