我的 iOS 游戏在 GSM 上运行正常,但无法在 CDMA 上运行
我们制作了一款游戏(距离提交给 Apple 还需要几周时间),而这段时间我们一直在 GSM 手机 (AT&T) 上进行游戏测试/调试。其中一位用户在 Verizon 购买了一部新 iPhone 4。当他使用 3G 网络时,游戏将启动到菜单,但如果用户按下“播放”,则不会发生任何事情。但是,如果他加入 Wi-Fi 网络,然后按“播放”,游戏就会正常开始。
有人遇到过这样的事情吗?我们相当确定这是一个软件问题,但一直在互联网上搜索有关问题到底是什么的任何信息。
We built a game (that's a couple of weeks away from being submitted to Apple) and all this time we've been play testing / debugging on GSM phones (AT&T). One of use got a new iPhone 4 on Verizon. When he's on the 3G network, the game will launch to menu but if the use pushes "Play" nothing happens. However, if he joins a wi-fi network then pushes Play the game starts normally.
Has anyone encountered anything like this? We're fairly certain it's a software issue but have been searching the Internet for any info on what exactly the issue is.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我们发现了问题所在!我们改变了端口。 CDMA (Verizon) 不喜欢端口 4444,因此我们更改为另一个(随机)端口 32545 并成功!谢谢大家,记住孩子们,CDMA 无法在端口 4444 上工作。
We found out the problem! We changed ports. CDMA (Verizon) doesn't like port 4444, so we changed to another (random) one of 32545 and success! Thanks to everyone and remember kids, CDMA doesn't work on port 4444.
您需要找出应用程序中具体是什么导致游戏无法启动。如果您没有记录任何内容,则可能存在未处理的错误。
鉴于开始游戏需要地理定位,我的猜测是,在 Verizon 手机上获得准确的位置修复所需的时间比您的应用程序预期的要长,并且它会默默地超时,或者它最初返回 0.00000000、0.00000000 的位置,而您的应用程序则没有不喜欢那样。使用 Wifi 时,定位服务可能会根据 Wifi 网络的已知位置提供即时的初始位置估计,从而避免该问题。
测试此问题的一种方法是对位置进行硬编码,或者在启动时将初始位置植入到应用程序中,然后看看这是否可以解决问题。
You need to figure out what specifically in your app is causing the game to fail to start. If you are not getting anything logged then there is presumably an error that is not being handled.
Given starting a game requires geolocation, my guess is that on the Verizon phone getting an accurate location fix is taking longer than your app expects and it is silently timing out, or that it is initially returning a location of 0.00000000, 0.00000000 and your app isn't liking that. When on Wifi, location services may be providing an instant initial estimate of location based on the known location of the Wifi network, which would then avoid the issue.
One way to test this would be to hardcode the location or seed an initial location into the app on launch, and see if this fixes the issue.