iOS 消息推送报错NSCocoaErrorDomain Code=3000

时间:2023-03-08 15:42:38
iOS 消息推送报错NSCocoaErrorDomain Code=3000

转自: http://www.cnblogs.com/zxykit/p/5207498.html

Xcode7推送报错。Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo=0x15f81360 {NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}

有些设备可以获取deviceToken,有些设备获取不到,就报“3000” 错误。暂时发现对iOS9的是可以获取的,iOS9以前是不可以的。现在列举一下可能出错的地方。

工具/原料

  • 编译环境:Xcode 7.1
  • Mac操作系统:OS X 10.11

方法/步骤

  1. 1

    证书问题:

    1.证书未正确生成,要先确保App IDs的推送使能Push Notifications是Enabled;

    2.生成开发环境APNs Development iOS或生产环境APNs Production iOS的推送证书,正确制作.p12文件;

    3.要确保Provisioning Profiles是设置过App IDs和生成推送证书后更新过的,下载最新的Profiles文件。

    iOS 消息推送报错NSCocoaErrorDomain Code=3000

  2. 2

    项目问题:

    1.工程-TARGETS-general->Bundle identifier要和证书上的一致;

    2.工程-TARGETS-general-> team要选中app所用的证书;

    3.注册DeviceToken时要将代码放在AppDelegate.m文件didFinishLaunchingWithOptions内;

    4.要区分iOS8前和iOS8之后的注册方法;

    5.监听注册结果(成功/失败)。(如图)

    iOS 消息推送报错NSCocoaErrorDomain Code=3000

  3. 3

    Xcode7问题:

    Xcode7使用推送,可能要打开手动设置一下,也可能不用设置,这个状况比较特殊。工程-TARGETS-Capabilities,里面列举多个Apple服务功能项,找到Push Notifications设置开启:ON。这里也是需要证书的,选择的时候要注意要喝项目的一致。(操作如图)

    iOS 消息推送报错NSCocoaErrorDomain Code=3000

  4. 4

    还不行的话,那就尝试:

    步骤1:删除本地证书,清空废纸篓;

    步骤2:项目 Product - clean一下,再完全关闭Xcode,

    步骤3:删除苹果开发者中心上的Certificates, Identifiers & Profiles

    证书,重新创建;

    步骤4:下载新的证书,双击打开导入Xcode。