iPhone を使用せずに Apple プッシュ通知サービスをテストするにはどうすればよいですか?
-
22-08-2019 - |
質問
iPhone アプリケーションなしで Apple プッシュ通知サービスをテストすることはできますか?(Windows上でエミュレータを作成しますか?)
そうでない場合、どうやってテストできますか?それを行うためにコンパイルされた無料のサンプル アプリケーションはありますか?
サーバープロバイダーを作成しましたが、機能をテストする必要があります。
解決
(この回答は 2013 年以降は古い可能性があります)
申し訳ありませんが、この機能をテストするにはハードウェアを見つける必要があります。
プッシュ通知はシミュレーターでは使用できません。これらは iTunes Connect からのプロビジョニング プロファイルを必要とするため、デバイスにインストールする必要があります。それはまた、おそらく Apple iPhone 開発者プログラムに受け入れられ、99 ドルを支払わなければならないことを意味します。
明るい面としては、iPhone OS 3.0 アップデートにより、第 1 世代の iPhone を含むあらゆるデバイスでこの機能をテストできるようになりました。
他のヒント
あなたは本当のプッシュ通知をテストすることはできません。しかしのを、あなたは、プログラムや手動AppDelegateの- application:application didReceiveRemoteNotification:notification
メソッドをトリガー1を作成することによってシミュレートされたプッシュ通知にアプリのの応答をテストすることができます。
(のUIViewControllerのような)異なるクラスからこれをトリガーするには、次の
[[[UIApplication sharedApplication] delegate]
application:[UIApplication sharedApplication]
didReceiveRemoteNotification:testNotification];
testNotificationは、プロパティリストオブジェクトプラスnsnullをが含まれている実際の通知、つまりNSDictionaryのと同じフォーマットを持っている必要があります。
ここで上記testNotification
を提供する方法の例です。
NSMutableDictionary *notification = [[NSMutableDictionary alloc] init];
[notification setValue:@"Test" forKey:@"alert"];
[notification setValue:@"default" forKey:@"sound"];
NSMutableDictionary *testNotification = [[NSMutableDictionary alloc] init];
[testNotification setValue:notification forKey:@"aps"];
これはで動作するように合理的な通知NSDictionaryのを作成する必要があります。
今日、私たちはこのライブラリにしてプッシュ通知をテストすることができます。
これは、端子を介してプッシュを送信するために非常に簡単です。
echo -n '{"message":"message"}' | nc -4u -w1 localhost 9930
echo -n '{"aps":{"alert" : "message","badge" : 99,"sound" : "default"}, "myField" : 54758}' | nc -4u -w1 localhost 9930
シミュレータはプッシュ通知を行いません。
そして、サーバーからプッシュする、あなたは、そのデバイス上のアプリと同様にプッシュするデバイス(複数可)を持っている必要があります。
トークンは、デバイスIDと同様に、アプリIDを含んでいます。
あなたが使用する必要があります。
NSString *notificationString = @"{\"aps\":{\"alert\":\"Test alert\",\"sound\":\"default\"}}";
NSData *notificationData = [notificationString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *testNotification = [NSJSONSerialization JSONObjectWithData:notificationData options:0 error:&error];
[[[UIApplication sharedApplication] delegate] application:[UIApplication sharedApplication] didReceiveRemoteNotification:testNotification fetchCompletionHandler:nil];
はい、あなたはシミュレータ上でプッシュ通知を確認することができますが、 SimulatorRemoteNotifications 。これによってちょうど4-5の手順を使用することにより、あなたはシミュレータ上でプッシュ通知をテストすることができます。
彼らは、あまりにもポッドを提供します。
pod 'SimulatorRemoteNotifications', '~> 0.0.3'