Submitting my app to the store without the intention of selling it - iphone

I'm building an iOS game that will have both singleplayer and multiplayer modes. I'm building the game in two different phases, one for singleplayer and then a second for multiplayer. The singleplayer phase is complete and it's completely shippable. I was thinking about submitting it to the iTunes store before I implement the multiplayer mode so if it gets rejected for any reason, I can fix those issues ahead of time. However, if it gets approved, I don't plan to release it until I finish the multiplayer mode and submit it as an update.
Is this a good/bad idea?
Do other people do this?
Thanks in advance for your help!

Its better you complete the application and then submit it, and app can get rejected for any unknown reason - So I would say just complete the application and submit it. If you know for sure that your app is going to get rejected - then you can submit the app in single player and set the release date to after one month or even a year and complete the multi player mode.

Just make your release date infinitely long. This way when it is approved, no one will see it. Then you can kill the app if you want after it is approved.

Related

Trouble and needed clarification for Itunes Connect

I am adding game center to my application and I feel lost. First of all,, my app is nmot a game, but I want people to see thier friends "score". Will I have to classify the app as a game? I am working on adding my app to itunes connect but I dont quite get it. When I add it and select the distribution date, will I have to distribute it? What happens when that day is reached? Do I even need to do all this to use gamecenter in my beta version? How does the app know its connected to itunes connect? Sorrty if these are stupid questiopns, but I dont quite understand.
If your app uses Game Center, the most typical thing is that it was classified by you as a game. We don't know how, and especially who, will review your app, so it could pass the review process, though.
Let's see two things:
- if you need to show a leaderboard, but the app is not a game, you could create your own leaderboard, or use a third party leaderboard (eg Google's).
- different questions are those that you pose in the end of your multiple "question". I suggest you look for each one of those in the Internet. Shortly, the date of public release depends on app submission and approval. If the date for public release is 1/1/2011 and you send the app to Apple, when it is approved it will automatically be published. You shouldn't send beta versions to Apple. The Game Center features should be available in sandbox mode while developing (please look for those terms in the Internet).

GKTurnBasedMatch push notifications are very inconsistent

I'm testing a turn based game between two devices. As far as I understand, sending a turn with [GKTurnBasedMatch endTurnWithNextParticipants:], for example, should automatically push a game center notification to the opponent. Sometimes, this works just as expected: the turn is sent and right away a banner notification shows up on the other device. All is well.
What is baffling me is that other times, even though the turn itself is sent properly (I can tell because when the opponent refreshes the matches, the match is up-to-date), there's no push notification coming in.
Are there any holes in my understanding here? If I'm understanding correctly, the inconsistent notifications shouldn't have anything to do with my code, because the issue here isn't how I handle notifications, it's that there is no notification at all. In other words, [handleTurnEventForMatch:] (aGKTurnBasedEventHandlerDelegate method) doesn't have anything to do with it (I don't think) because if no notification is being received, it's never going to be called anyway.
So, I'm just wondering if anyone has had any experience with this. Is it possible that this is due to something in my code? Or, is it possible that the Game Center sandbox is responsible for the inconsistencies, and there's nothing I can do about it?
Any thoughts or ideas would be much appreciated.
It is an issue with GameCenter's sandbox mode. In order for your device to enter sandbox mode you have to open/run your app and authenticate game center. If you say, open a different (published) game after your game is open it will leave sandbox mode and and go back to regular game center mode.
Even if your game is running in the background, as long as it is the last game-center enabled game opened you should get the push notifications as normal. But if you open the game, and then kill the process, you will no longer be in sandbox mode and will not receive the push notifications.
For those who are experiencing similar problems: this turned out to be a Game Center sandbox problem. It had nothing to do with my code, and things were fine in the App Store release. So, read through the comments here and make sure there aren't other things factoring into whatever issues you're having...but know that it's possible that you're simply experiencing some Game Center sandbox issues that are out of your control!
I am also facing the same problem. My game stops receiving turn events and turn notifications from Game Center, I finished my game and was testing, but this week, the problem started to happen. It was working like a charm but suddenly instances started not to receiving turn events for a couple of days.
I am using the iOS7 SDK and targeting iOS7 (turn event handling is different than prior iOS versions, I will need exchanges in upcoming game features, that's why I am using iOS7).
Then I made a test app to check if it was same with iOS6 and prior SDKs, but no help, it was same. So don't waste your time to upgrade your code to iOS7 hoping it would work, the problem is there. I also tried many things, like resetting devices and settings, using new users, etc.
I also tried it with Ray Wenderlich's Turn-Based Gaming with iOS 5 tutorial, by downloading source code, and it doesn't work neither.
The thing is, usually when I launch the game, game receives turn events, but after a few turns, it just stops, and when it stops receiving, stops like forever. If I reload the match, I can get the updated match and it's data is also updated, so I can make the turn. It means match is updated on Game Center. So, either Game Center is not pushing the data to users (possibly this is happening because user cannot receive notifications from Game Center when the game is in background), or the GameKit is not firing the event to the handler.
I don't know why it is happening, or why it started to happen, but I can't release my game like this, hoping that it would work out of sandbox. I will be trying a couple of more things (like maybe trying turn reminders of iOS7, to see if they push it to the user), then I will ask to Apple's support team. One other thing i am planning to do is, putting my test app to App Store and see it if works out of sandbox.
Hopefully it is a sandbox problem.

iPhone Game pause and resume, is it worth implementing?

Allow me to describe my situation:
I want to develop a game, that is round-base, and pay-to-play. That means you pay one coin, for one round of game, like Pinball etc.
The problem is, when there is interruption, ideally the game should pause, and resume whenever the user desires. Implementing that seems to be a challenge. Say my game was put into background, I would save the game state in ApplicationDidEnterBackground. However the game may or may not get terminated while in the background. So the next launch could be a "fresh start" , or, a "resume from last saved state".
If the app is left in the background long enough, say 1 week, its almost certain that other apps fighting for memory will cause the game to be terminated at some point. When the user starts my app again, they would be playing from a new round, meaning that the previously unfinished game, is gone.
From a customer point of view, this is unfair.
What I can think of is, to implement it so that whenever my app is brought to the foreground, I would go check if there was a saved game. If there was, I shall resume it instead. This poses a security issue:
Saved game, either in most primitive plist format or other formats, are persisted, and poses security problems. (What if players edit the game state and score 10 million points as top score... etc)
Are there any recommended ways to tackle these problems?
I see some Apps simply give up on saving the game, and a new round will be started on resume. Those are not paid to play games, otherwise I can imagine users getting very angry.
I have seen some Apps that saves the game state for a while, but when it got terminated, when next launched, it will start a fresh round. Which seems just as unacceptable in the case where players actually paid money for the round.
And when taken into account the possibility of crashes, I cannot come up with a good solution that ensure paying customer will get to play a full round of game. It would really help me if someone with relevant experience could share their thoughts, and how they make their decisions.
Why not tie the round finishing to the payment? If the round doesn't finish, no payment is taken. If the user's credits are insufficient at the time the round finishes, you could give them the option to purchase more credits immediately (via in-app purchase) to finish the current round.
That simplifies your task as a developer, and also provides a way to prompt the user for additional payment in a non-obnoxious way.
Here's a great tutorial on using NSCoding to save game states. It won't have any problem with the player going in a editing the file, as it is done in NSCoding. If a user REALLY wants to figure out how to un-encode the file and change the contents, which is crazy, you could do some kind of encryption on the data BEFORE you write it to file, so there would be no way the user could change it. Hope that helps!

iPad: Force iPad Updates

I've been developing an application for our client and they are requesting that we add in compulsory updates for their application. The app allows sales-team members to showcase their product and they are worried that if a product gets re-called then the sales-team must reflect this in the app immediately or else there could be legal implications for the company. How feasible is this to implement? Are there any examples of this in use?
Cheers for the help guys,
Dan
The way you could do this is to get the app to call the server and ask for the latest version number. If it's different then stop the app and tell the user to upgrade. However, this won't work if they start the app without a network connection :)
I also don't know if this will be allowed by Apple?
A better way to do it is for the app to download a list of products each time it runs (cahcing it incse it starts with no connection of course!) so that the products in the app are always up to date and the users never need to upgrade at all.

What are the odds that this iPhone app will fail?

I've been waiting on an iPhone app to go through the app store approval process. It's been in the queue for about two weeks now.
Apple recently added something to the dev center about reachability, pointing developers to their sample app. In my app, I'm posting to a URL on my server using HTTP - but I'm not doing a reachability check first. If the user tries to submit the request, it will eventually time out and they will see an error.
What are the chances that Apple will fail this app? I'm wondering if I should just quickly implement reachability and "reject binary" myself, submitting a new version. Might save me a couple of days if I'm just going to get rejected anyway.
Implement reachability, if your app uses the web and when there is no connectivity the app doesnt say something along the lines that "this is not working because you have no internet access" then 95 percent it will be rejected by apple
Sounds like you answered your own question to me - not handling that case is a serious UX problem you should definitely fix.
If I were expecting to deal with a reasonable, smart approval process, I would do exactly that -- fix the app to match their new documents. It's a classy move, implying you'd be a good citizen.
You may want to rely on someone who's been through the iPhone app store, though, for an answer with the right amount of cynicism.