web-dev-qa-db-ja.com

iPhoneなしでプッシュ通知サービスAppleをテストするにはどうすればよいですか?

Apple iPhoneアプリケーションなしでプッシュ通知サービスをテストできますか?(Windowsでエミュレータを作成しますか?)

そうでない場合、どのようにテストできますか?それを行うためにコンパイルされた無料のサンプルアプリケーションはありますか?

サーバープロバイダーを作成しましたが、機能をテストする必要があります。

64
Zanoni

(この回答は2013年以降は古くなっている可能性があります)

申し訳ありませんが、この機能をテストするにはいくつかのハードウェアを見つける必要があります。

プッシュ通知はシミュレーターでは使用できません。 iTunes Connectのプロビジョニングプロファイルが必要なため、デバイスにインストールする必要があります。つまり、おそらくApple iPhone開発者プログラムに受け入れられ、99ドルを支払う必要があります。

明るい面では、iPhone OS 3.0アップデートにより、第1世代のiPhoneを含む任意のデバイスでこの機能をテストできます。

72
casademora

実際のプッシュ通知をテストすることはできません。 ただし、アプリのresponseをテストすることができます。プッシュ通知をプログラムで作成し、AppDelegateの- application:application didReceiveRemoteNotification:notification 方法。

別のクラス(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が作成されます。

54
Jamon Holmgren

最近では、プッシュ通知を this library でテストできます。

端末を介してプッシュを送信するのは非常に簡単です:

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
30
kaspartus

シミュレーターはプッシュ通知を行いません。

また、サーバーからプッシュするには、プッシュするデバイスとそのデバイス上のアプリが必要です。

トークンには、アプリIDとデバイスIDが含まれています。

6
Johnny

あなたは使わなければなりません

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];
4
user2894794

はい、シミュレータでプッシュ通知を確認できますが、アプリで SimulatorRemoteNotifications という名前のライブラリを使用する必要があります。わずか4〜5ステップで、シミュレータでプッシュ通知をテストできます。

また、PODも提供します

pod 'SimulatorRemoteNotifications', '~> 0.0.3'
1
Sagar Shirbhate