我的应用刚刚被Apple拒绝,因为它没有正确实现后台运行,并且它是使用iOS的VOIP应用。在后台运行VOIP(PJSIP)服务
我认为保持它运行奇数码是
[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
[application setKeepAliveTimeout:KEEP_ALIVE_INTERVAL handler: ^{
[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
}];
我知道是错的
然后我跟着
http://blog.dkaminsky.info/2013/01/27/keep-your-ios-app-running-in-background-forever/这是VOIP黑客得到它运行所有的时间。我再次认为这是错误的。
我基本上只需要调用一个方法来保持PJSIP活着。
我该如何正确地做到这一点?
UPDATE
我已经看过了苹果直营店,看来这是正确的
但是我不知道如何配置PJSIP TCP端口在后台运行。
APPLE:为VoIP使用配置一个应用套接字。
的背景它只是苹果运行正常拒绝它
2.16
我们发现您的应用使用背景模式,但不包括要求模式持续运行的功能。这种行为不符合App Store评论指南。
我们注意到您的应用在Info.plist的UIBackgroundModes项中声明了对VoIP的支持,但不支持来自所连接的VoIP服务的来电。
如果您的应用程序不支持来自其连接的VoIP服务的来电,则voip背景模式不适用。正如iOS编程指南所述,此密钥适用于需要监听来电呼叫的套接字的应用程序:
“与其让VoIP应用程序一直保持唤醒状态,系统允许它们暂停并提供监视它们的设施当检测到传入流量时,系统唤醒VoIP应用程序,并将其插座的控制权交还给它。“
请使用Info.plist文件的UIBackgroundModes项中的“音频”值进行调查。使用音频背景模式可在您的应用处于后台时保持当前的VoIP呼叫打开。
添加VoIP功能或从UIBackgroundModes键移除“VoIP”设置是适当的。对于不同的代码级问题,您可能希望咨询Apple开发者技术支持。请务必:
更新2
PJSIP告诉我,插座被标记为VOIP,所以我不知道这是为什么被拒绝
我刚刚发现本指南,令人困惑的是配置您的应用套接字,这是一个名为PJSIP的库,它处理所有内容。 – Burf2000
如何设置:为VoIP使用配置一个应用套接字。 | 在转到后台之前,请调用setKeepAliveTimeout:handler:方法来安装要定期执行的处理程序。您的应用可以使用此处理程序来维护其服务连接。 配置您的音频会话以处理转入和转出活动状态。 – Eesha