在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文件。
還有一種是出現鑰匙串訪問裏面,出現多個類似證書,把無用的刪除掉,即可。我的項目就是這個原因。
2. 項目問題
- 工程-TARGETS-General->Bundle Identifier要和證書上的一致;
- 工程-TARGETS-General-> Team要選中app所用的證書;
註冊DeviceToken時要將代碼放在AppDelegate.swift文件didFinishLaunchingWithOptions內;
要區分iOS8前和iOS8之後的註冊方法;
- 監聽註冊結果(成功/失敗)。
3.Xcode問題
- Xcode7使用推送,可能要打開手動設置一下。工程-TARGETS-Capabilities,裏面列舉多個Apple服務功能項,找到Push Notifications設置開啓:ON。
- Xcode 6.4 是沒有Push Notifications 這個選項的,因此可以不用管。
如果以上的方法都不能解決,可以嘗試刪除重新生成安裝證書。