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 这个选项的,因此可以不用管。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容