Help us understand the problem. What is going on with this article?

FirebaseのPush通知をiOSで使ってみる

More than 3 years have passed since last update.

Firebaseのpush通知を使ってみたいと思って挑戦しました

xcodeでシングルページの新規プロジェクトを用意しておいてください
証明書の作り方も書きました

firebaseをiosアプリに追加

とりあえずfirebaseのアカウントを作成
googleアカウントを持っていれば一瞬で終わります

新規プロジェクトを作成してiosにアプリにfirebaseを追加を選択
screenshot.png



アプリの詳細を記入したら
GoogleService-Info.plist ファイルを Xcode プロジェクトのルートに移動し、すべてのターゲットに追加してください
screenshot1.png



4.png

ターミナルでアプリケーションのXcodeプロジェクトの場所に移動してください
podfile作成

pod init

vimで編集

vim podfile

pod 'Firebase/Messaging'をtargetとendの間に入れる

target 'アプリ名' do
pod 'Firebase/Messaging'
end

インストール

pod install

screenshot5.png

インストール完了です
workspaceファイルを開いてください
スクリーンショット 2016-05-23 15.54.14 1.png

次にAPNs証明書の作成をしていきます

APNs証明書の作成(.p12)

キーチェーンアクセスを開いて左上のメニューから
証明書アシスタントを選んで
認証局から証明書を要求を選択

6.png

メールアドレスと通称を記入
ディスクに保存で続けるをクリック

7.png

作ったらDeveloper.apple.comにアクセスしてCertificates, Identifiers & Profiles
のAppIDsを選ぶ

9.png

10.png

開発中のアプリのBundle IDを記入する
target->GeneralでBundle Identifierの部分です

11.png

Push Notificationsを選択して
12.png

continueをクリック

13.png

Registerを押す

できたら
IdentifiersでAppIDsで作ったものを選択

14.png

下にあるEditをクリック

そうしたらまた下の方にある
15.png

Development SSL Certificateの方に先ほどキーチェーンアクセスで作った
CertificateSigningRequest.certSigningRequestをアップロードする

16.png

17.png

18.png

19.png

Downloadする

ダウンロードしたaps_development.cerをダブルクリック

証明書がキーチェーンアクセスに追加されて
秘密鍵も生成されている
↓こんな感じです
20.png

ファイルマークを右クリックしてExport(〜を書き出す)する

21.png

パスワードを設定するかどうかは任意です
セキュリティを高めるにはつけたほうがいいでしょう

↓APNs証明書(.p12)

22.png

APNs証明書ができました

次にプロビジョニングファイルを作っていきます
Certificates, Identifiers & Profiles
に戻りProvisioning ProfilesのDevelopmentをクリック
p1.png

+を押して
p2.png

p3.png

continue
開発しているAppIDを選択
p4.png

p5.png
continue

p6.png

download
ダウンロードしたファイルをダブルクリック

APNs証明書をFirebaseにアップロードします

設定->クラウドメッセージを選択

23.png

開発用APNs証明書を選択して先ほど作ったp12をアップロードする
24.png

これでFirebaseの準備はできました

今度はXcodeでプロジェクトをいじっていきます

Xcodeでプロジェクトを編集する

AppDelegate.swift

import Firebase
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        let notificationSettings = UIUserNotificationSettings(
            forTypes: [.Badge, .Sound, .Alert], categories: nil)
        application.registerUserNotificationSettings(notificationSettings)
        FIRApp.configure()
 return true
    }
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
        let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)
        var tokenString = ""

        for i in 0..<deviceToken.length {
            tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])
        }

        FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: FIRInstanceIDAPNSTokenType.Unknown)
    }

Info.plistの編集
Information Property Listに
FirebaseAppDelegateProxyEnabledを追加して
NOに設定

25.png

最後にtargetを選択
capabilitiesを選択して
push notificationをオン

26.png

あと下の
Background Modes
Remote notificationsもオンにしてください

27.png

以上で終了です

iPhoneにこのアプリをインストールしてください

Push通知を送ってみる

アプリをインストール
30.png

OKをタップ
初めての通知を送ってみましょう

iPhoneはロック画面かホーム画面にしておきましょう

Notificationsを選択して

28.png

29.png

Push通知を確認
31.png

jiiikki
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away