Iphone 从推送通知中获取错误

Iphone 从推送通知中获取错误,iphone,objective-c,apple-push-notifications,Iphone,Objective C,Apple Push Notifications,在我的应用程序中,我需要推送通知。我正在执行推送通知文档中的所有说明。但我从推送通知中得到一个错误: Fail To Register For Remote Notifications With Error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x2340a0 {NSLocali

在我的应用程序中,我需要推送通知。我正在执行推送通知文档中的所有说明。但我从推送通知中得到一个错误:

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}

我做错了什么?

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

例如,检查


即使在你为推送启用了应用程序id之后,它也可能需要几个小时才能工作

我刚刚处理了这个问题。虽然可能发生了很多事情,但以下是我学到的

当您更改应用程序ID(例如启用推送通知)时,您需要创建新的配置文件。我必须已经创建了我的应用ID,使用它创建了一个配置文件,然后在应用ID上启用了通知


一旦我从门户网站和设备中删除了配置文件,我就使用修改后的应用程序ID创建了一个新的配置文件。下载它,然后将它扔到我的设备上,砰砰谢谢,夫人,它成功了。希望这对未来的人们有所帮助

首先必须在设备中运行applcaiton

这将在xcode 3.2.6中发生。因为当你把一切都变得完美的时候。但您的应用程序没有在iphone、ipad或ipod中注册。您需要生成一个authentication.plst文件

  • 步骤:首先在xcode中选择您的项目并创建一个文件。选择名为it Rightage.plist(默认名称)的代码设计文件
  • 把它放在资源文件夹中
  • 右键单击“作为xml编辑器打开”
  • 然后在文本编辑模式下打开您的配置文件,如您的_aplicationname.mobileprovision(您为Apns服务器创建的)
现在,将以下行从您的资源调配配置文件复制到您的授权文件中:

<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>
应用程序标识符
xyz.com.company\u name.app\u name
aps环境
发展
获取任务允许
密钥链访问组
xyx.*
  • 保存authentication.plist文件
  • 运行将由Apns服务器通知的应用程序

启用推送后,生成一个新的资源调配配置文件,它将正常工作

这刚刚为我解决了问题,我将与大家分享。
如果更新应用程序id,则必须从设备、xcode和developer.apple.com中删除配置文件。然后创建一个新的匹配配置文件,该配置文件使用新的应用程序id设置进行更新。最好给它起个稍微不同的名字,这样你就知道你选择的是正确的

这让我发疯了。我反复检查了所有内容,但仍然得到相同的错误。 也尝试了网络上提供的所有其他解决方案。 然而,这对我来说起了作用。我在启用APN之前创建.mobileprovision文件。这才是真正的错误。 解决这个问题:

  • 创建应用程序ID
  • 启用APN
  • 然后创建配置文件

  • 如果您之前创建了配置文件,并且启用了APN,则应该从系统中的任何位置(XCode、keychain、iTunesConnect)删除配置文件。然后再次创建设置文件。

    只需确保您使用的是特定的设置证书

    转到: 检查您的供应证书的状态,在最坏的情况下,只需创建一个新的,下载它并再次分配给您的项目


    确保您使用的是哪种类型的供应,“开发”或“分销”

    我遇到了同样的问题,

    我解决了它,确保在构建设置中,调试的代码签名标识设置为正确的配置文件

    ,您在该配置文件中启用了推送通知。

    我在XCode 4.6.1中遇到了相同的错误,它对我有效,然后我从Mac中删除以前的APNS配置文件,并从成员中心重新下载APNS配置文件。在目标模式下的构建设置中,代码签名标识应仅在调试模式下作为iphone Developer for Release设置为nil或删除开发者或发行版。

    正确设置配置文件。可能您没有设置配置文件。

    我使用的是Xcode 6.1.1

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

    只需进入Xcode>Preferences>Accounts>pick your Account>pick your Team>View Details

    单击左下角的刷新按钮。(还要检查生成设置中的代码签名)


    我也得到了同样的。下面是我如何解决的

    1) 已删除
    ~/Library/MobileDevice/provisioningprofiles

    2) 已从开发人员帐户中删除配置文件

    3) 创建并安装了新的配置文件


    请注意,更新配置文件并不能解决问题。

    好吧,有点尴尬,但有时你会花几个小时在最愚蠢的错误上-

    因此,我在DEBUG模式下运行应用程序,而不是AD-HOC

    要改变这一点,请执行以下操作:

    方案->编辑方案…

    选择左侧的Run,并在构建配置下更改为临时dist

    *当然,在创建配置文件时,您需要在build setting\code signing下具有适当的临时配置文件,以及附加到该文件的适当APNS证书

    **一旦您运行它,它将崩溃,因为它不在调试模式下,但您仍然可以从设备运行


    < P>如果你管理一个以上的应用程序推送一个服务器,那么考虑下面的事实。 您需要将单独的私钥作为p12文件进行处理,以准备pem文件,当您创建.certSigningRequest文件时,此私钥将在keychain应用程序中生成。所以,这个CSR