85

iPhoneアプリケーションなしでApplePushNotification Servicesをテストすることは可能ですか?(Windowsでエミュレーターを作成しますか?)

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

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

4

12 に答える 12

81

この回答は時代遅れです。2020/Xcode 11.4 以降、シミュレーターでプッシュ通知をテストできるようになりました

以下の回答でこの完全な説明を参照してください

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

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

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

于 2009-07-04T20:19:17.523 に答える
57

実際のプッシュ通知をテストすることはできません。ただし、プログラムで手動で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が作成されます。

于 2012-12-13T17:48:12.553 に答える
30

現在、このライブラリを使用してプッシュ通知をテストできます。

ターミナル経由でプッシュを送信するのはとても簡単です:

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
于 2013-07-15T06:43:57.683 に答える
6

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

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

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

于 2009-08-17T16:23:35.437 に答える
3

使用する必要があります

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];
于 2014-07-01T15:19:28.330 に答える