私はMDMサーバーを設定しています。私はすべての証明書の生成手順に合格しました。私はmdmサーバーに正常に登録できます。しかし、私がウェイクアッププッシュ通知を送信すると、私はデバイスから応答を返さない。アップルMDM - プッシュ通知のトピック
Java APNSライブラリを使用してmdmプッシュ通知を送信しています。ここでは、コードです:
final String token = getToken("dlfkjgldfjglfl");
ApnsService service = APNS.newService()
.withDelegate(listener)
.withCert(P12_FILE_PATH, "password")
.withProductionDestination()
.build();
final String payloadString = APNS.newPayload().mdm("push_magic_token").build();
// Send the wake up push notification to APNS
service.push(token, payloadString);
私はプッシュが成功してAPNSに送信されたことを意味しますが、デバイスがウェイクアップしないと、私のMDMサーバと通信しない、上記のコードとdelegate
プリントenvironment:production|push notification sent|notification:Message(Id=1; Token=the_token; Payload={"mdm":"magictoken"})
でエラーまたは例外何を取得していません。
アップルのドキュメントでさらに詳しく説明すると、プッシュ通知のトピックを指定する必要があると述べていますが、ライブラリにはトピックを設定する方法がありません。 Apple Documentationから
:
のAPN-トピック:通常、アプリのバンドルIDでリモート通知の話題。 Member Centerで作成した証明書には、このトピックの機能が含まれている必要があります。 証明書に複数のトピックが含まれている場合は、 このヘッダーの値を指定する必要があります。このヘッダーを省略し、APN証明書が に複数のトピックを指定しない場合、APNサーバーは証明書の 件名を既定のトピックとして使用します。
これからは、Java APNSライブラリが証明書の主題としてトピックを使用していると仮定します。
証明書を生成するには、this tutorialに従いましたが、生成されたvendor.p12
ファイルがAPNSによってプッシュ通知証明書(ハンドシェークエラー)として受け入れられませんでした。私は考え出したいくつかのグーグルた後、一部の人々はまた、この問題を持っていたし、彼らはそれを使用してMDM証明書、アップルから生成されたダウンロードmdm.cer
から別の.p12
を生成する固定:私は私のプッシュ通知として使用しています
openssl x509 -in mdm.cer -inform DER -out push_developer.pem -outform PEM
openssl pkcs12 -nocerts -in vendor.p12 -out vendor.pem
openssl pkcs12 -export -inkey vendor.pem -in push_developer.pem -out push_developer.p12
証明書は、push_developer.p12
私は証明書管理に熟練していないので、私は迷っています。 私の質問は、どのように証明書にトピックを設定できますか?