2017 TCN創客松Start-Up 紀錄
在我們的作品中有使用到Firebase 推播服務FCM(FireBase Cloud Messaging),覺得這部分很實用且以後還會用到,所以在此紀錄一下步驟。
1. 使用 cocoaPods 載入 Google Cloud Message SDK 至 Xcode 中
如果只使用推播服務的話只需pod以下兩個
pod 'Firebase/Core'
pod 'Firebase/Messaging'
2. 使用 Google 帳號登入 Firebase 後台並建立專案
2.1 新建專案
名稱可自訂,專案ID不需更改,完成後點選建立專案。
2.2將 Firebase 加入 iOS 的應用程式
2.3 iOS繫結ID: 需對應Xcode專案的bundle identifier
2.4 下載GoogleService-info.plist後,加入到專案底下。
完成後一直按繼續到完成即可。
3. 從 key chain 匯出 .certSigningRequest (CSR) 檔案
3.1 打開鑰匙圈,選擇左上鑰匙圈存取→憑證輔助程式→從憑證授權要求憑證
使用者電子郵件位址:Apple ID 的 email
一般名稱:英文名字
已將要求:儲存到磁碟
按繼續後即輸出完成
4. 登入開發者後台創建含有遠程通知服務的 APP IDs
4.1登入後台的 Certificates, Identifiers &Profiles
4.2 在左列的選單選擇 App IDs 並點選「+」
4.3 註冊 App ID
name:任意填入
bundle ID: 填入Xcode專案的bundle identifier (同2.3)
往下拉看到Enable Service :勾選 Push Notification
完成後按下Continue
接著按下Register
5. 配置 App IDs 遠程通知的設定
5.1 點擊剛剛產生的 App ID 展開後,點選 Edit
5.2 往下滾找到產生測試時期通知的 SSL 證書(Development SSL Certificate),點擊 Create Certificate
5.3 上傳步驟 3 所產生的 CertificateSigningRequest.certSigningRequest(CSR) 檔案
完成後點Continue
5.4 下載 .cer 檔案
下載後直接點擊兩下,系統會自動安裝到鑰匙圈
檢查是否安裝到鑰匙圈
6.先至後台確認測試的設備有無註冊過,若沒有才要執行註冊的動作,下圖表示已註冊過。
7. 在 Apple 開發者後台配置 Provisioning Profiles(僅測試環境需要設定)
7.1 在 Apple 開發者後台選取左側選單點擊 Provisioning Profiles下的 Development(開發時期測試用),並點選「+」號
7.2 選取 iOS App Development 後點選 Continue
7.3 選擇剛剛創建的 App ID 後點選 Continue
7.4 選擇 iOS 開發者證書,若不確認是哪一個的話,全部勾選即可
7.5 選擇測試的設備
7.6 替 Profile 命名(任意即可,因只是測試用的)
完成後按下Continue,進入下一個頁面點選下載
下載後雙擊即自動安裝
8. 在 Firebase 後台專案底下匯入步驟 7 所產生的憑證(.p12檔)
8.1 打開鑰匙圈點選左側選單憑證 → 展開步驟 7.6 所安裝的憑證檔 → 展開的項目右鍵 → 輸出…
注意檔案格式需為 (.p12)
8.2點選儲存後系統會詢問是否輸入密碼來保護該檔案,可以直接選擇「好」來跳過該提示,也可自行輸入密碼來保護,但請牢記該密碼,因在上傳到 Firebase 時會用到。
8.3登入 Firebase 後台將匯出的 .p12 檔上傳,請使用 Safari 10(含)以上的版本或 Chrome 開啟,否則會看不到該功能。
Overview 旁的齒輪 → 專案設定 → Cloud Message → 上傳憑證 → 選擇步驟 8.1 產出的 .p12 檔
*若8.2時有設定密碼,此時會跳出視窗請您再輸入密碼。
以上已完成所有的設定了,再來要在 Xcode 裡加入.接收遠端通知的程式碼了。
9. 撰寫接收遠程通知的程式碼。
Messaging.messaging().subscribe(toTopic: "/topics/iOSTest")
這行是利用FCM的Server訂閱:"/topics/自訂name"
往後要發送推播通知給指定topic時只要打: "to" : "/topics/自訂name",這樣所有有訂閱這個topic的裝置都會收到推播通知。
9.1 打開 Xcode Push Notification 的選項
選擇專案 → TARGETS → Capabilities → ON
10. 現在來測試吧!
記得要先允許傳送通知
大功告成!!
參考資料:
https://firebase.google.com/docs/ios/setup
https://medium.com/@mikru168/ios-google-notification-firebase-cloud-message-c2849117be08