我的iOS游戏在GSM网络下可以正常启动,但在CDMA网络下无法运行。

3
我们制作了一款游戏(离提交到苹果商店还有几周的时间),在此期间我们一直在GSM手机上进行游戏测试/调试(AT&T)。其中一个人购买了Verizon的新iPhone 4。当他使用3G网络时,游戏会启动到菜单,但如果用户点击“播放”,则不会发生任何事情。然而,如果他加入Wi-Fi网络,然后点击播放,游戏就可以正常启动。
有没有人遇到过这样的问题?我们相当确定这是软件问题,但一直在搜索互联网上关于该问题的任何信息。

不知道“Play”是什么功能,可能很难缩小问题范围。它是否从网络流式传输视频?还是做其他事情?考虑到Verizon的网络不允许同时使用电话和数据网络,这可能是一个因素吗?您能否在多个Verizon手机上复制此问题,并确保它不仅仅是配置问题,例如关闭蜂窝数据? - Duncan Babbage
感谢后续跟进。并不是移动数据的问题,我们已经检查过了。 :) 是一款使用 GPS 追踪用户实时位置并将其放入一个开放世界游戏中与其他用户互动的游戏。我所说的“玩”是指应用程序将启动,以便用户进入其菜单屏幕。当他们点击“播放”以实际初始化 GPS 并进入游戏世界时,什么也没有发生。在后台,他们无法连接到我们的服务器,什么也没有。我们认为这可能与 Verizon 不允许电话和数据有关,但这与 GPS 有何关系呢?那不仅仅是数据吗? - masterclam
你已经尝试在他的手机上进行调试了吗?如果是这样,那有什么见解吗? - pepsi
这有点棘手,因为他所在的地理位置与我们的工程办公室不同,所以他没有源代码。 - masterclam
2个回答

1
我们找到了问题所在!我们更改了端口。CDMA(Verizon)不喜欢端口4444,因此我们更改为另一个(随机的)32545,并成功了!感谢大家,记住孩子们,CDMA不能在端口4444上工作。

0

你需要找出是你的应用程序中的哪个具体原因导致游戏无法启动。如果没有任何日志记录,那么很可能存在未被处理的错误。

考虑到启动游戏需要地理定位,我猜测在Verizon手机上获取准确位置信息所需的时间比你的应用程序预期的要长,并且它会在静默超时时停止运行,或者它最初返回的位置是0.00000000、0.00000000,而你的应用程序不喜欢这样。当连接WiFi时,位置服务可能会根据WiFi网络的已知位置提供即时的初始位置估计,从而避免这个问题。

测试这种情况的一种方法是在启动时将位置硬编码或种子化到应用程序中,并查看是否解决了该问题。


由于遇到问题的人在很远的另一个办公室,而且他不是工程师(例如没有调试工具),我们不能只说“调试它”。但我们肯定会使用您的建议并查看发生了什么。我们让他通过 Wi-Fi 连接,然后走开,直到他切换到 3G。当他切换到 3G 时,我们可以在服务器端看到他没有断开连接,但也没有更新。一旦他回到 Wi-Fi 范围内,他就开始再次更新。 - masterclam
好的,问题不在超时,而是手机没有向服务器发送任何内容。他没有断开连接,但也没有发送或接收任何内容。 - masterclam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接