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 這個選項的,因此可以不用管。

如果以上的方法都不能解決,可以嘗試刪除重新生成安裝證書。

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