我需要一种测试推送通知反馈服务的方法。我可以发送通知。
我使用XCode将应用程序安装到我的开发iPod,发送推送通知就好了,应用程序收到它们。
我卸载了该应用,发送了一些推送通知。然后尝试了反馈服务,但没有运气。我没有从流中收到任何字节。
甚至尝试等待一天。在不同的iphone上尝试过同样的东西,但没有。我确定代码很好,双重检查网址和端口等,一切都很好。除了使用相同的设置(除了网址和端口),我可以发送推送就好了。
所以我不知道现在该做什么。我在网上搜索过,但找不到任何有用的东西。有人建议我已经尝试过(发送推送 - >卸载 - >发送推送 - >听取反馈)。
有什么想法吗?有什么方法可以确保它在推送之前能够保持良好状态吗?
下面是代码(C#):
using (TcpClient client = new TcpClient())
{
client.Connect("feedback.sandbox.push.apple.com", 2196);
using (NetworkStream networkStream = client.GetStream())
{
Console.Out.WriteLine("Client Connected");
X509Certificate cert = new X509Certificate(fileLocation, password);
X509CertificateCollection certCollection = new X509CertificateCollection(new X509Certificate[1] { cert });
SslStream ssl = new SslStream(client.GetStream(), true, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
try
{
int bytesRead;
byte[] b = new byte[38];
ssl.AuthenticateAsClient("feedback.sandbox.push.apple.com", certCollection, SslProtocols.Default, false);
do
{
bytesRead = ssl.Read(b, 0, b.Length);
}
while (bytesRead != 0);
ssl.Close();
}
catch (AuthenticationException e)
{
Console.WriteLine("Exception: {0}", e.Message);
return;
}
}
}
答案 0 :(得分:0)
设备上应至少安装一个推送应用程序。如果卸载应用程序且设备上没有推送应用程序,则设备无法连接以进行推送以保留电池。
答案 1 :(得分:0)
请参阅Apple Documentation: 删除设备上最后一个启用了推送功能的应用程序时,不会通知Apple服务器删除应用程序,因此设备将永远不会出现在反馈服务器上。
要解决此问题,您应该创建一个虚拟应用程序,在删除正在测试的应用程序之前,它将在开发模式下注册推送通知。