从推送通知中获取错误

在我的应用程序中,我需要推送通知。 我正在实施推送通知文档中的所有说明。 但是我收到推送通知的错误:

Fail To Register For Remote Notifications With Error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x2340a0 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application} 

我做错了什么?

生成推送后,生成一个新的configuration文件,它将工作!

我正在使用Xcode 6.1.1

您不必删除或重新创build任何内容。 你只需要让Xcode更新你的活动证书(包括新的推送通知证书)。

只需转到Xcode>首选项>帐户>select您的帐户>select您的团队>查看详细信息

点击左下angular的刷新button 。 (同时检查您的代码签署生成设置)

在这里输入图像说明

我有同样的问题,

我解决了它,确保在内置设置debugging的 代码签名身份设置为适当的configuration文件

在其中启用了推送通知。

首先,您需要确保您使用不带通配符的应用程序ID。 然后,您需要启用该应用程序的推送通知进行开发。

例如,查看本教程 。

即使您启用了应用ID进行推送,也可能需要几个小时的时间才能生效。

那让我发疯 我交叉检查了一切,但仍然得到相同的错误。 尝试了所有其他的解决scheme在networking上也是如此。 但是,这对我来说是个诡计。 在启用APNS之前,我创build了.mobileprovision文件。 这是真正的错误。 解决这个问题:

  1. 创build应用程序ID
  2. 启用APNS
  3. 然后创buildconfiguration文件

如果您之前创build了configuration文件,并且启用了APNS,则应该从系统中的任何地方(XCode,钥匙串,iTuneConnect)删除configuration文件。 然后再次创buildconfiguration文件。

我刚刚处理了这个问题。 虽然可能有很多事情正在进行,但这是我学到的东西。

当您更改应用ID时,如启用推送通知,您需要创build一个新的configuration文件。 我必须创build我的应用程序ID,使用它的configuration文件,然后启用应用程序ID的通知。

一旦我从门户和设备中删除configuration文件,我使用修改后的应用程序ID创build了一个新configuration文件。 下载它,扔在我的设备上,哇巴姆谢谢你,夫人它的工作。 希望这有助于未来的人!

这只是解决了我,所以我会分享。 如果您更新您的应用程序ID,则必须从设备,xcode和developer.apple.com中删除configuration文件。 然后创build一个新的匹配供应configuration文件,使用新的应用程序ID设置进行更新。 最好把它命名为稍有不同,所以你知道你正在select正确的。

首先你必须在设备上运行applcaiton。

这将在xcode 3.2.6中发生。 因为当你获得完美的一切。 但是你的应用程序没有注册在你的iPhone,iPad或iPod。 您需要生成一个Entitlement.plst文件。

  • 步骤:首先在xcode中select你的项目创build一个文件。 select名为entitlement.plist的密码文件(默认名称)。
  • 把它放在资源文件夹。
  • 右键点击打开为XML编辑器。
  • 然后以textedit模式打开您的provisionfile,如your_apllicationName.mobileprovision(您为Apns服务器创build的)。

现在从您的供应configuration文件复制以下一行到您的权利文件:

 <key>application-identifier</key> <string>xyz.com.company_name.app_name</string> <key>aps-environment</key> <string>development</string> <key>get-task-allow</key> <true/> <key>keychain-access-groups</key> <array> <string>xyx.*</string> </array> 
  • 保存entitlement.plist文件。
  • 运行您将通过Apns服务器通知的应用程序。

在这里输入图像说明

使configuration文件正确。也许你不设置configuration文件。

对我来说 – >去项目设置 – >应用程序目标 – >function

启用推送通知!

只要确保您使用的是特定的条款证书

请转到: https : //developer.apple.com/ios/manage/provisioningprofiles/index.action检查提供证书的状态,最坏的情况下只需创build一个新的,下载并重新分配给您的项目。

确保你正在使用哪种types的供应,“开发”或“分配”

我也有同样的 这是我如何解决。

1)在~/Library/MobileDevice/Provisioning Profiles删除了configuration~/Library/MobileDevice/Provisioning Profiles

2)从开发者账户中删除configuration文件

3)创build并安装新的configuration文件

请注意,重新configuration文件没有解决。

好吧,有点尴尬,但有时候你花了几个小时在最愚蠢的错误 –

所以,我在DEBUG模式而不是AD-HOC上运行应用程序。

改变这一点,做:

计划 – >编辑计划…

select左边的运行,然后在构buildconfiguration下更改为Ad-Hoc dist。

*当然,在创build设置configuration文件时,您需要在生成设置\代码签名以及附加的合适的APNS证书下有合适的adhocconfigurationconfiguration文件。

**一旦你运行它,它会粉碎,导致其不在debugging模式,但你仍然可以从设备上运行。

在这里输入图像说明

如果您正在pipe理多个应用程序推送到一台服务器上,请考虑以下事实。

您需要将一个单独的 私钥作为p12文件处理,以准备pem文件,并且在创build.certSigningRequest文件时,该私钥在钥匙串应用程序中生成。 所以,这个CSR可以在相同的应用程序到期后重复使用,但其他应用程序需要单独使用。

我在XCode 4.6.1中遇到了同样的错误,它为我工作,然后我从Mac上删除以前的APNSconfiguration文件,并从成员中心重新下载APNS provisioingconfiguration文件。 在目标模式下的“生成设置”中,“代码签名标识”应该只在“debugging模式”下以iphone Developer for Release的forms存在,否则将删除开发人员或分发。