Game Center game development time limit? - app-store-connect

Apparently I have to create my App on iTunes Connect in order to use Game Center code in my project. But wait, I remember that if you wait around 7 months of something, iTunes Connect removes your app and the same name can't be used again.
Is there a way to... remove that time limit?

It's 4 months and no, there is no way to extend it, although I have heard unconfirmed reports of people talking to Apple and getting it extended, but I would not count on that.
I asked this very question on the Apple forums and was told by several people to just create a dummy App, do all your testing and then when you know you can complete it in less than 4 months, create a new final app. The downside is you have to reenter all your leader board and achievement information.

Related

Leaderboard "My Circles" not showing player's friends

I have been integrating the Games Services APIs into my games for a few days now and having a weird problem that can possibly qualify as a bug.
So I've setup a few test players with Gmail accounts and have added them to each other's circles. The problem I am having is that when I start the activity with the leaderboard's intent the "My Circles" tab doesn't show the other players in the current player's circles, even though the players show up on the Public tab.
Is there something obvious that I am missing?
A couple months late, but, considering I've recently run into the exact same problem, I figure I'll post my findings to aid anyone who stumbles upon this question in the future.
I'm assuming that you're still in the testing phase and haven't actually published your game via the Google Play Developer Console. Publishing is the key. There are two tiny sentences buried in a NOTE on this Google developer page:
https://developers.google.com/games/services/common/concepts/leaderboards#creating_a_leaderboard
Note: Social leaderboards will initially be empty until you publish
the corresponding leaderboard by using the Google Play Developer
Console
Social leaderboards won't be useful until after you publish. i.e. You'll never see social leaderboards during testing.

OnRoomCreated returns an error status code, may be due to Google Play Services update

I want to apologise in advance - my question will be not about programming, but rather about some quirk of Google Play Services we have met.
The situation is the following - we did not update the version or change the settings in developers console, but we got a bit over 10 e-mails from players who cannot play anymore - the game gets something different from STATUS_OK in OnRoomCreated callback. Nothing is wrong with the code - these players were able to play just a day before, which makes me think about Google Play Services updated in background. The issue was first reported not more that 2 weeks ago.
I know it is not much info, but we did not get the issue on our devices. With only 10+ e-mails from 1000+ daily online players, we are rather unlikely to see it.
Actions already tried without success:
Restarting device
Reinstalling the game
Disconnecting the game from Google Settings\Connected Apps
Clearing cache, data and removing updates of Google Play Services
Updating to the most recent version of the library
Here we have run out of ideas. If anyone has met the same, or has any good ideas, please, share them.
This issue seems to be account-specific, and the only known solution so far is to make a new Google account. My guess is that the players affected were playing the game when something happened (Google Play Services updated?), and now they are still marked as playing that game. So, they can't start a new one. The corresponding issue is here:
https://code.google.com/p/play-games-platform/issues/detail?id=70
Update: Google team has marked it Fixed.

Creating a QBOE Time Entry App for Win 8

My company uses Quick Books Online for its accounting, and that's where we go to log our time against projects. In an effort to make time entry easier, and a way to learn how to write a Windows 8 Metro app, I thought it would be a useful project that simplified time tracking, application that could automatically submit my time to QB. The thought would be users would use their own QBO logins so it would be able to see their time entries.
I have been looking around the api for QBOE and can't seem to tell if its possible to connect to a QBOE account with non admin credentials. Is what I am thinking even possible?
No, this is not possible. You will need something in the middle to talk between QB and your application.
There are a number of different timesheet apps on appcenter that you might look at. https://appcenter.intuit.com/category/time-tracking

Avoid Leaderboard Hacking on Game Center

Has anyone found a way to avoid leaderbaord hacking on Game Center or at least make it more complicated?
You can see a video of HackCenter, a Cydia app that lets you submit any score you want here: Hack Center
Even though that application is not supposed to be available on the Cydia Store we've all seen scores that are obviously fake on several games on the AppStore. Unlike the score submitted on that video, the fake scores are usually ridiculously high and they discourage other players, since they can never reach the top of the leaderboard.
I haven't been able to find out how the hack is accomplished (I presume they intersect the http call and just replace the score parameter with whatever they want?).
Any insight is appreciated.
The problem stems from allowing users to generate their own score data device-side. This would be a lot harder if all the score related calculations were done server-side and then posted to the score-board (I don't know how your app works, so I can't recommend a specific technique).
I think the BEST thing you can do is record data about HOW they got the really high score for review later by you. That may be impossible depending on your game's structure. It also might be forge-able depending on your games structure. For example, some game scores are impossible to get in-game just due to the physics on how the game works. This in my opinion is your best defense against it. Sadly, that requires monitoring it all the time....
Also, even if you can verify fake scores, someone could continually forge fake scores all day long and you'll never be able to keep up with it. Someones score submission bot will win in the end. It's not human, you are. It can post fake scores all day, you can't watch for fake ones all day, you can't verify 1000s of fake submissions. Trying to verify anything that is generated user-side (such as device ID, app being installed, etc...) is pointless. It can be forged. IP addresses are meaningless too. Your app is a on a mobile platform that can get a brand new IP all they want from the cell company. Tracking single legit real users is very hard if someone wants to hide from you because of this.
Maybe you can have some kind of app purchase verification with the help of Apple too. That would make it easier for you to ban offenders. They would have to pay you to forge your leaderboard, lol.
That's just my 2 cents, I hope it helps.
Because they're doing a http intercept, there's unfortunately nothing you can do. I've even found setting the max score for the leaderboard in itunes connect has no effect.
A game I worked on never serilaised the score to disk - so it couldn't have been changed there - and set max score to 30m. Yet the leaderboard was full with IntMax scores within hours of launching.
Hopefully Apple will have some fixes coming in WDC13 because as it stands, the worldwide leaderboards are useless.
You could try checking if the user has that thing installed I guess and then disable them from entering a high score if it they have the app.
I personally would just check for Cydia:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:#"cydia://"]]
I am not sure what the url for Hack Center is exactly but, maybe you could try guessing it a couple times. I would guess 'cydia://hack_center' or something like that. And then once you find the url replace it 'cydia://' with it.
Have two hi score tables:those with cydia, those without :P
You can also set up your own server and use proper authentication and encrypted channels to upload score and then just compare whats in your server vs whats in GameCenter... You still need to clean up the leaderboard, but at least you will know what to remediate and which users to put on blacklist.

What is the best way to start a movie the first time your app starts

I want to have a movie start the first time my app is launched to train users on its use, say a 50 second clip.
How would I go about doing this in an iPad app?
(I am building a very complex platform that has hooks into the web and need users to be aware of that. The video will explain that users can go to the website for different features. When the app starts for the FIRST TIME only I want the video to play.)
Don't force users to sit thru a 50 second movie when the app starts. Your user interface should be obvious enough that they can figure out the basics without watching a training video. If you want to offer it, provide a help button, where they can watch it when they choose to.
See the iPhone HIG section Minimal User Help, which says:
A hallmark of the design of iPhone
OS–based devices is ease of use, so
it’s crucial that you meet users’
expectations and make the use of your
application immediately obvious.
EDIT -- The simplest way to keep track would be to store a flag indicating whether or not you have shown the video by using NSUserDefaults. Check if it's set at startup, set it after showing the video the first time.