遠程推送應用配置過程xcode
添加App ID服務器
設置Bundle ID,不能設置通配ID網絡
勾選遠程通知選項,能夠在配置App ID的時候勾選,也能夠在原有App ID的基礎上進行更改。併發
勾選遠程通知選項ide
勾選遠程通知選項ui
建立遠程推送證書編碼
建立推送證書spa
選擇咱們剛纔配置好,勾選推送選項的App ID.代理
選擇App IDcode
選擇咱們電腦本地使用證書助理生成的CSR文件
選擇後綴名爲.certSigningRequest的文件
下載證書
生成配置文件
選擇此Provisioning Profile的環境後點擊Continue
點擊Continue
選擇要建立Provisioning Profile的App ID後點擊Continue
點擊Continue
選擇所屬的開發者證書,(這裏建立了多個開發者證書,建議只建立一個,方便管理)爲了方便。這裏選擇Select All,再點擊Continue進入下一步。
點擊Continue進入下一步
爲該Provisioning Profile選擇將要安裝的設備(通常選擇Select All),點擊Continue
選擇Select All
給該Provisioning Profile填寫Profile Name,點擊generate完成建立
完成建立
建立完成,點擊download下載到本地。雙擊下載下來的Provisioning Profile,添加到xcode。
注意:導出證書的時候,儘可能不要展開私鑰。
導出後綴爲.p12的文件
導出證書
上傳給服務器時,須要告訴服務器開發同事證書的密碼。
設置密碼
具體怎麼新建應用程序和其餘開發就很少說了,直接說和推送相關的。
打開info.plist文件的Bundle identifier選項,將配置推送證書的App ID填寫進去
App ID填寫
點擊項目,進入Build Setting 界面,向下滑動,去到Code Signing 配置證書
配置證書
須要在Xcode 中修改應用的 Capabilities 開啓Remote notifications
開啓Remote notifications
因爲iOS系統權限限制,須要註冊遠程通知,咱們直接上代碼
註冊遠程通知
註冊通知以後,蘋果會將DeviceToken經過代理方法的形式返回相應的代理方法。注意:必定要聯網!
這個代理方法會將手機的UDID + 應用程序的Bundle ID發送給蘋果,蘋果進行某種編碼以後再經過代理方法返回。
deviceToken = (手機的UDID + 應用程序的Bundle ID) 蘋果編碼
返回的deviceToken是NSData類型的,大概格式以下:<7040f7d5 5a974598 c5cf31b5 3e340b39 68affd25 122f0ce1 3f315226 396c2e5b>
註冊通知後,在代理方法中接收到蘋果返回的deviceToken
獲取到蘋果發送的deviceToken
實現接收到遠程通知的代理方法,觸發方法和本地通知流程一致
iOS8之前使用這個方法:
獲取推送消息
iOS8以後使用這個方法:
獲取推送消息
執行completionHandler有兩個目的
1> 系統會估量App消耗的電量,並根據傳遞的UIBackgroundFetchResult 參數記錄新數據是否可用
2> 調用完成的處理代碼時,應用的界面縮略圖會自動更新
注意:接收到遠程通知到執行完網絡請求之間的時間不能超過30秒