在应用程序商店上找不到应用程序的有效“ APP-Environment”权限字符串

我一个月前发布了一个叫“滴水器”的应用程序几天前更新了一下。更新添加了推送通知和一些小调整。我使用开发配置文件在沙盒 -apn 上进行了测试,结果非常好。然后我把东西切换到生产平台,并把它试飞,再次一切都很完美。一旦我把更新的市场和运行它,我注意到我没有得到任何新的推注册在服务器上。我查看了设备的控制台日志,发现了这个:

Dec 417:55:15 Ina-touch-it Coffco [1210] : 注册远程通知
Dec 417: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 和 app store 构建之间的功能是一样的。

下面是我的应用程序 ID 和它的权利:

enter image description here

下面是应用程序商店的配置文件:

enter image description here

106845 次浏览

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

因此,为了解决这个问题,创建一个新的配置文件并选择 Xcode 的配置文件。那你就完了。

另外,当您添加 push 时,我相信您已经更新了 keychain 中的证书。

我是这样解决这个问题的:

  • 转到 Xcode“ Preferences”
  • 进入“帐户”标签
  • 选择我的苹果 ID,然后点击“查看详细信息”
  • 单击左下角的箭头刷新
  • 点击“完成”

再试一次!

来源:

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

我用下面的步骤修复了它

  • 我已经为应用程序 ID 创建了新的供应配置文件
  • 添加到 xcode 中
  • 项目转到 Xcode“ Preferences”
  • 到“帐户”选项卡选择我的苹果 ID,然后点击“查看详细信息”
  • 选择您的供应配置文件
  • 单击左下角的箭头刷新
  • 点击“完成”

现在运行这个项目,它肯定会工作。

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

点击。 xcodeproj-> 能力-> 启用推送通知

您必须启用 Target ー > ability ー > push tification,我曾经使用 Xcode 8遇到过这个问题。enter image description here

出于某种原因,魏的解决方案对我不起作用。当单击 Fix 应享权利时,Xcode 生成了两个文件,但仍然无法运行,实际上生成的应享权利文件是空的。

这显然是由于项目的 PRODUCT _ NAME 相当长,并且包含空格和“ ä”和“ ö”字母造成的。在把它改成只有英文字母的简短版本后,魏的修复工作正常进行。

我花了一段时间才弄清楚是什么导致了没有有效的应用程序环境权利错误。 问题是有两个。XCode 项目中的权利文件。一个是平台/ios//。另一个是平台/ios//资源/。只有当 XCode 配置为使用后者时,才会在前一个文件中显示应享权利和适当的应享权利。我手动更新了后一个文件,一切都开始工作了。 解决这个问题的另一个选择是更改。应用程序由 XCode 使用。这可以在构建设置—— > 签名—— > 代码签名 Entitments 配置参数中完成。

我不知道为什么有两个。XCode 中的权利文件。有没有可能是科尔多瓦推送插件创建了第二个(我正在开发一个混合科尔多瓦移动应用程序) ?正确的位置是什么。权益档案?

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

下面是我要遵循的步骤:

1. 创建供应配置文件

(FCM 不是先决条件为推送通知,但他们的指南是惊人的清晰,链接在这里)

为了在开发过程中测试应用程序,您需要一个供应配置文件来授权您的设备运行应用程序,该应用程序尚未在应用程序商店上发布。

  1. 导航到 Apple Developer 会员中心并登录。
  2. 导航到证书、标识符和配置文件。
  3. 在左上角的下拉菜单中,选择 iOS、 tvOS、 watch OS (如果还没有选择) ,然后导航到 Provisoning Profiles > All。
  4. 单击 + 按钮创建一个新的供应配置文件。
  5. 选择 iOSAppDevelopment 作为配置配置文件类型,然后单击“继续”。
  6. 在下拉菜单中,选择要使用的 AppID,然后单击“继续”。
  7. 选择您在上一步中选择的 AppID 的 iOS 开发证书,然后单击“继续”。
  8. 选择要包含在配置文件中的 iOS 设备,然后单击“继续”。确保选择要用于测试的所有设备。
  9. 输入此供应配置文件的名称(如 Firebase 示例应用程序开发配置文件) ,然后单击 Generate。
  10. 单击“下载”将供应配置文件保存到 Mac。
  11. 双击 Provisoning Profile 文件以安装它。

2. 激活推送通知功能

  1. 转到项目编辑器,从 < a href = “ https://help. apple.com/xcode/mac/8.0/#/devb3575be3e”rel = “ noReferrer”> 官方手册 enter image description here
  2. 在能力部分,激活推送通知 enter image description here

我经历了这个问题,并用第一个解决方案解决了它。

然而,我失败了一次,因为我有两个苹果帐户登录。删除之后,一切开始工作。

在更高版本的 Xcode 中,添加推送通知功能的导航略有变化

Xcode 12 add notifications capabilities instructions