くま's Tech系Blog

基本的には技術で学んだことを書き留めようと思います。雑談もやるかもね!

iOSのシミュレーターにプッシュ通知を送る

今回はプッシュ通知のテストについて書きます。

プッシュ通知のペイロードはわかっていてもプッシュ通知の機能がまだない場合ありませんか?

業務でたまたま発生してプッシュ通知のテストがシミュレーターでできることを知ったので方法をまとめたいと思います。

前提としてApple Push Notification Service payloadという以下のようなフォーマットのJSONファイルが必要になります(拡張子は .apnsのファイル)

{
    "aps":{
        "alert":"これはテストです",
        "sound":"default",
        "badge":1
    }
}

JSONファイルをシミュレータにドラッグアンドドロップ

この方法が1番簡単だと思います。

Simulator Target BundleにプロジェクトのBundle IDを入力します

他にペイロードのデータなどはプロジェクトによって追加してください

{
    "Simulator Target Bundle": "",
    "aps":{
        "alert":"これはテストです",
        "sound":"default",
        "badge":1
    }
}

上記のようなapnsファイルをシミュレータにドラッグアンドドロップすればプッシュ通知をシミュレーターに送ることができます

コマンドラインで送る

下記のようにsimctlを使う方法もあります。この場合Simulator Target Bundleは不要です

$ xcrun simctl push <シミュレーターのDeviceID> <BUNDLE_ID> <APNS_FILE_NAME>

SIMULATOR_DEVICE_ID は次のコマンドで調べることができます。

xcrun simctl list

作成したapnsファイルをもとにプッシュ通知がシミュレーターに送られるはずです

apnsファイルを作成する際に"aps"はないとうまくいかないと思うので、注意してください