Bluetooth connect no longer works on iPhone 5s - iphone

I am the developer of Rock Paper Missiles, a strategy game that was released to the App Store about a month ago. This weekend I got my new iPhone 5s, and noticed a critical problem with the bluetooth local multiplayer in the game. The "searching for devices" alert no longer appears, but this only happens on iPhone 5s. My game isn't the only one that does this. Another local bluetooth game, Zombieville USA 2, also has this problem. In their case however, it's worse. The app freezes when you try to connect.
Is there anything I can do to fix this or do I need to wait for Apple to fix iOS 7? Could it be an iOS issue? It seems to only happen on this specific hardware.

Related

Game Center displayed no data on iOS 10

Context
I have 2 games available on AppStore. On a device running iOS 9, Game Center View displayed data for LeaderBoards, Achievements and Challenges.
On another device running iOS 10 no data are displayed.
These apps are on AppStore for some times with no known problems. Going to iOS 10 lead to the loss of Game Center data.
Code
Game Center view is displayed using GKGameCenterViewController.
Game Center
I've checked Game Center data on iTunes Connect: everything is OK. It's also OK using Game Center app for Mac or Game Center app on iOS device running iOS 9.
Tests
I ran test on a device running iOS 10, plugged to Xcode: everything was fine, with the same Game Center account.
Of course during all this tests this the same Game Center credentials is used.
iOS 9 — Simulator
iOS 9 — Device
iOS 10 — Simulator
iOS 10 — Device
"Aucune donnée disponible" is the french translation for "No data available".
Given a single device that previously worked on IOS9 and now isn't working on IOS10 even though other devices with the same ID work fine, we have to consider both server-side and client-side issues:
Server-side issue: We can't rule out server-side issues, especially given the other server-side issues that appear with GameCenter. In the past, for reasons that have never been explained by Apple, simply changing the default leaderboard has solved all sorts of game-center-won't-play-nice issues. Creating a new leaderboard and making it the default, or simply changing which leaderboard is default, seems to be sufficient. However, from my own experience, this works when the problem affects all users, not just 1 device.
Client-side issues: Since you're seeing different behaviors on different devices using a single game center ID, I believe it's more likely to be a client-side issue stemming from the upgrade process. I'd try two things.
First, log out of game center on the affected device, then log back in with a different game center ID. Does the problem still occur?
Second, log out of all three iTunes, iCloud and gameCenter (3 separate places in settings). Reboot the device, then log back in.
Admittedly, all of these are grasping at straws, but these items have corrected weird game center behaviors for me in the past.

Restarting an iPhone programmatically

I have an iPhone 3GS, which I am using for testing etc. Unfortunately its Power button (the one on top right) stopped working, thanks to my son's attempts at baseball pitching practice. Now, if I have to reboot the phone, all I can do is let the battery drain out and then reconnect power. Is it possible to do something programmatically (I will not, of course, submit this as an iPhone App!) without jailbreaking, so I can restart the iPhone when needed? I have an Apple membership so I can write and run these apps on the phone. Any suggestions are appreciated.
I am running iOS 5.1.1 on it currently.

Game center invitation failing on 2nd generation ipod touch

I am working on a multiplayer game with connections via Game Center and GKMatch. I have three devices -- a 4th generation iPod touch, a 2nd generation iPod touch, and an iPad 2. Connecting the two newer devices works just fine. But if I try to use the older device to connect one of the newer ones, Apple's default invitation says "want to play (null)?" instead of "want to play ([name of my game])?". And the newer device never gets a message that the older one has invited it.
The older device is running iOS 4.2.1. The newer ones are running iOS 4.3.3.
Inviting the older device with a newer one also fails. The invitation looks correct, but the older device never receives it.
How can I fix that?

Testing for bugs on Apple devices that you do not own

I'm starting to send out a beta version of my app for users to test. One came back and told me that the app crashes on her iPod Touch (2nd Gen). How do I debug for this considering I don't own one. All I have is the iPhone 4, yet there 9 other devices (each generation of iPhone, iPod Touch and iPad) that I would like my app to run on. Any advice?
EDIT 1
There is no iPod Touch hardware option in the simulator. Should I just assume that it is treated as an iPhone?
Hoptoad App is great for this. You can sign up for free for up to 1 project, and the implementation is very easy.
http://hoptoadapp.com/pages/home
For starters get the crash logs from your users' devices and try to debug based on those. Not a big help in testing on devices you don't have, I know, but at least you'll be able to figure out what crashed on each device your beta testers have...
You could try Apple's IOS simulator.
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/125-Using_iOS_Simulator/ios_simulator_application.html
To set the iOS release used in the
simulation environment, choose
Hardware > Version, and choose the
version you want to test on.

iPhone GameKit Picker Fundamental Connection Issues

This is one of the more interesting things I've seen in iPhone development.
The following question has nothing to do with code because I'm using an SDK Example from Apple (Tanks example).
I have a 3GS iPhone, and a 3G iPhone both showing the GameKit picker screen. Both will eventually show the other phone in range just fine (It does take about 25 seconds, though).
If I pick the 3G iPhone with my 3GS, the 3G will get a connection request and a connection can be made. However, it will ABSOLUTELY not work in the vice versa. Both phones have bluetooth switched on, and both phones are running the latest OS version.
The simple fact is I'm using the SDK example, and it's just not working for the 3G trying to issue the connection. Is there any way to explain this extremely odd behavior?
Thanks alot for reading!
I've seen the same problem, intermittently though. I don't think it's that odd because the 3G and 3GS actually use different Bluetooth tech. IMO, the Bluetooth on iPhone just isn't there yet.