極光推送

一.首先進入極光官網
1.注冊一個號
2.建一個你自己對應的項目,然后獲取Appkey
填寫你的Boundle id (這個就是你xcode里面plist那里)

Screenshot_13-4_2_create.jpg

3然后我們要上傳這兩個p12文件才能實現推送這個功能(下面第二步我們就去蘋果開發者中心去生成)


create_ios_app.jpg

二 生成開發證書和生產證書()
1.(https://idmsa.apple.com/IDMSWebAuth/login?appIdKey=891bd3417a7776362562d2197f89480a8547b108fd934911bcbea0110d07f757&path=%2Faccount%2F&rv=1)這是跳到開發者中心的鏈接,輸入你公司的賬號密碼。登錄
然后點擊App IDs進入App ID列表。

appid.png

然后選擇這個

A0XNY8$C@$Z)398FU8B4O(V.png

添加你的id

appid2.png

然后就選擇和填這幾個選項
1.1*(這里的名字你可以選擇你自己喜歡的填寫)
![53[HFA(PT({`8``[])O4IS.png

Z2WS`0O$M7H83AM305C9PCI.png
YAUEYA6J4F9$TI9$KUHV2CD.png

最后在 continue
2.現在進入正題開始生成開發和生產證書了

image.png

這里的開發證書和生產證書兩個選項只能選擇一個(當你選擇生成的是開發證書的時候就選擇開發證書,反之你就選擇生產證書)


image.png
image.png

這里點擊鑰匙那里然后就可以這里了


image.png
image.png

繼續返回Apple developer 網站點擊 Continue ,上傳剛剛生成的 .certSigningRequest 文件生成 APNs Push Certificate。
下載并雙擊打開證書,證書打開時會啟動“鑰匙串訪問”工具。
在“鑰匙串訪問”中你的證書會顯示在“我的證書”中,注意選擇“My Certificates” 和"login"

image.png

注意要選“login”和“My Certificates” 導出證書時要選中證書文件,不要展開private key。(這里可能第一次按右鍵不會出現導出證書這個選項,多點幾次就會出來)

image.png

將文件保存為Personal Information Exchange (.p12)格式。


image.png

就搞定了,這里的步驟你要做兩次,一次是生成開發證書p12,一次是生成生產證書p12。然后你再回到極光推送那里把這兩個對應上傳上去密碼也輸入上去就搞定了。

最后極光和蘋果官方這兩塊搞定了,最后導入到xcode那里就搞定了。
導入SDK

選擇1:Cocoapods導入(如何沒有安裝cocoapods的,看看這篇文章http://www.lxweimin.com/p/a1709c1d292d
通過Cocoapods下載地址:
pod 'JPush'
如何你是swift
把下面這個粘貼到橋文件上

import "JPUSHService.h"

oc自己聲明弄到appdelegate上

然后開網
info.plist 中添加如下配置以支持 http 傳輸。

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
把這里幾個選項勾選了


image.png
image.png

最后來粘貼代碼

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?
 
func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions
                    launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
   
    //通知類型(這里將聲音、消息、提醒角標都給加上)
    let userSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound],
                                                  categories: nil)
    if ((UIDevice.current.systemVersion as NSString).floatValue >= 8.0) {
        //可以添加自定義categories
        JPUSHService.register(forRemoteNotificationTypes: userSettings.types.rawValue,
                                                        categories: nil)
    }
    else {
        //categories 必須為nil
        JPUSHService.register(forRemoteNotificationTypes: userSettings.types.rawValue,
                                                        categories: nil)
    }
     
    // 啟動JPushSDK
    JPUSHService.setup(withOption: nil, appKey: "7b528331738ec719195798fd",
                                 channel: "Publish Channel", apsForProduction:true)

    return true
}

 
func application(_ application: UIApplication,
                 didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    //注冊 DeviceToken
    JPUSHService.registerDeviceToken(deviceToken)
}
 
func application(_ application: UIApplication,
                 didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                 fetchCompletionHandler
                    completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    //增加IOS 7的支持
    JPUSHService.handleRemoteNotification(userInfo)
    completionHandler(UIBackgroundFetchResult.newData)
}
 
func application(_ application: UIApplication,
                 didFailToRegisterForRemoteNotificationsWithError error: Error) {
    //可選
    NSLog("did Fail To Register For Remote Notifications With Error: \(error)")
}
 
//..........

}
JPUSHService.setupWithOption()方法的參數說明:
channel
指明應用程序包的下載渠道,為方便分渠道統計,具體值由你自行定義,如:App Store。
appKey
填寫管理Portal上創建應用后自動生成的AppKey值。請確保應用內配置的 AppKey 與第1步在 Portal 上創建應用后生成的 AppKey 一致。
apsForProduction
1.3.1版本新增,用于標識當前應用所使用的APNs證書環境。
0 (默認值)表示采用的是開發證書,1 表示采用生產證書發布應用。
注:此字段的值要與Build Settings的Code Signing配置的證書環境一致。

最后我們來玩一波 (注意只能真機測試,模擬器不行)

![@TM3I_~KV(7GKOG3Y)_W_9.jpg
如果后臺打印了這些證書成功了

image.png

3,將程序退出。接著我們到極光推送網站上的控制臺模塊來進行消息發送的測試。
在“推送”->“發送通知”頁面中,輸入需要推送的消息及相關配置(這里我們選擇廣播,即給所有人都發生推送)。點擊“立即發送”。

image.png
image.png

搞定解決。

總結:
1.apple.develop中的所有證書可以刪除重新制作,對已上線的應用不會有影響
2.似乎生產環境下所有的設置好不能直接在真機上測試,需要打包ipa文件提交到iTunes上同步安裝到手機上測試。這相當于模擬真實用戶的操作,很實用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容