Error Domain=NSCocoaErrorDomain Code=3000

在ios注册推送服务的过程中,出现如下错误:
Error Domain=NSCocoaErrorDomain Code=3000 “未找到应用程序的“aps-environment”的授权字符串” UserInfo=0x170e6fdc0 {NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}–

1. 证书问题

  • 证书未正确生成,要先确保App IDs的推送使能Push Notifications是Enabled;
  • 生成开发环境APNs Development iOS或生产环境APNs Production iOS的推送证书,正确制作.p12文件;
  • 要确保Provisioning Profiles是设置过App IDs和生成推送证书后更新过的,下载最新的Profiles文件。
    FBA2177B-6EEA-4625-AFD0-BC2EEFFDFFE3.png
    还有一种是出现钥匙串访问里面,出现多个类似证书,把无用的删除掉,即可。我的项目就是这个原因。
    FAE71A01-04A3-467C-8FBF-9188AA37B618.png

2. 项目问题

  • 工程-TARGETS-General->Bundle Identifier要和证书上的一致;
  • 工程-TARGETS-General-> Team要选中app所用的证书;
    FAE71A01-04A3-467C-8FBF-9188AA37B619.png
  • 注册DeviceToken时要将代码放在AppDelegate.swift文件didFinishLaunchingWithOptions内;

  • 要区分iOS8前和iOS8之后的注册方法;
    AD229711-0E21-4F7E-B610-8180DD02A875.png

  • 监听注册结果(成功/失败)。
    A411767A-9B96-4E62-B60E-BA5150B06D87.png

3.Xcode问题

  • Xcode7使用推送,可能要打开手动设置一下。工程-TARGETS-Capabilities,里面列举多个Apple服务功能项,找到Push Notifications设置开启:ON。
  • Xcode 6.4 是没有Push Notifications 这个选项的,因此可以不用管。

如果以上的方法都不能解决,可以尝试删除重新生成安装证书。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章