これを数日間苦労させてください。私は頭の中にいる。私はプッシュ通知を追加するiOSエンタープライズアプリケーションを開発しました。私はクライアント側(iPhone)には問題ないと思うけど、APNサーバーに接続するために開発しているWindowsアプリケーション(VB)は私に大きなトラブルを与えている。ここでWindows vs2017プログラムからApple APNサーバーにアクセスする際の助けが必要
は例外ラインが示されて私は、私はインターネット上のどこかに見つけたことを使用しています非常に基本的なコードです:
Using client As New TcpClient()
client.Connect("gateway.sandbox.push.apple.com", 2195)
Using networkStream As NetworkStream = client.GetStream()
txtErrorMessages.AppendText("Client connected." & vbNewLine)
Dim clientCertificate As New X509Certificate(FileSystem.CurrentDirectory & "/apns-dev-key.p12", "abc123")
Dim clientCertificateCollection As New X509CertificateCollection(New X509Certificate(0) {clientCertificate})
' Create an SSL stream that will close the client's stream.
Dim sslStream As New SslStream(client.GetStream(), False, AddressOf ValidateServerCertificate, Nothing)
Try
[exception thrown here] sslStream.AuthenticateAsClient("gateway.sandbox.push.apple.com", clientCertificateCollection, SslProtocols.Default, False)
Catch ex As AuthenticationException
txtErrorMessages.AppendText(String.Format("Exception: {0}", ex.Message) & vbNewLine)
If ex.InnerException IsNot Nothing Then
txtErrorMessages.AppendText(String.Format("Inner exception: {0}", ex.InnerException.Message) & vbNewLine)
End If
txtErrorMessages.AppendText(String.Format("Authentication failed - closing the connection.") & vbnewline)
client.Close()
Return
End Try
End Using
End Using
Google検索は、さまざまなバリエーションのトンが表示されますが、彼らはすべての原因明らかに廃止されましたプッシュ通知APIの変更について私は何かを見つけることができませんが、少なくともこのスニペットは他のものよりも私を得ることができます。
例外:
私はMacのキーチェーンからエクスポートされたアップルの開発者向けサイトのIDページで生成された.p12ファイル上のさまざまなバリエーションの数は、手順を追ってみました他のフォーマット(.pemなど)に変換するためのさまざまなチュートリアルから、または何でも、何も動作していないようです。
興味深いことに、パスワード文字列を変更した場合、例外はThe specified network password is not correct
に変わり、少なくともパスワードを認識していると思います。
誰でもこの混乱から私を導くことができますか?
ありがとうございます!