2

アプリを開発モードで実行すると、PushMeBaby を介して自分自身に送信するプッシュ通知を問題なく受け取ることができます。しかし、本番環境でテストしようとすると、プッシュ通知を受け取ることができません。すべての証明書とプロビジョニング プロファイルを再生成し、aps_production_identity.cer をプッシュ通知の証明書として使用し、SSL を gateway.push.apple.com に変更し、アプリのリリース ビルドを実行しましたが、まだ取得できませんでした。それが機能します。私はPushMeBabyで、その行を見つけました

result = SSLHandshake(context);

エラー -9844 を返します。これは、aps_production_identity.cer ファイルに何か問題があるということですか?

4

2 に答える 2

1

サンプルコードであっても、このような数値をコードにハードコーディングしない方がよいと思います。30 はポート番号だと思いました (これ以上コード評価を行わないのは残念です)。

その行を次のように変更しました。

#define kApplePushGateway "gateway.push.apple.com" //"gateway.sandbox.push.apple.com"

result = SSLSetPeerDomainName(context, kApplePushGateway, [[NSString stringWithUTF8String:kApplePushGateway] length]);
NSLog(@"SSLSetPeerDomainName(): %d", result);
于 2012-06-01T14:31:52.270 に答える
1

はい、このエラーを解決しました。私は解決策を見つけるために数日を失いました。問題は次の行にあります。

result = SSLSetPeerDomainName(context, "gateway.sandbox.push.apple.com", 30);
NSLog(@"SSLSetPeerDomainName(): %d", result);

ポートを 30 番に変更する必要があります。これで問題は解決します。

于 2010-06-10T16:16:44.087 に答える