Please do not post the same thing multiple times. The board software automatically flags certain posts as needing moderator attention. This happens the most often for new users. I'm pretty sure this is made clear at the time you attempt to post. Posting the same thing over and over again just makes that many more posts the moderators have to weed through later. This makes us sad. Don't make us sad. If your post/thread doesn't appear, just wait a while. Don't post it again. If it hasn't shown up by the next day, then you can try again. I normally go through posts in the mornings, and try to check a few times throughout the day, but I'm not here 24/7. There will typically be a significant delay before posts are approved. Just be patient.
I have been asked by a client if I could update an app from paid to free with IAP's.
Now the actual code alterations to add purchases is simple , the adding of adverts until you buy something also simple.
Question is..... , they already have around 50k+ people who have bought the app. Is it possible to detect those people and give them full access - as if they have done the IAP ?
I was hoping the API would provide something along those lines but have yet to spot it.
Any help from people that have done this appreciated.
One option would be to issue an update where you save a boolean flag to NSUserDefaults - (like isUserPaid).. and set the flag to true for all existing users.
Then in the next update you can change the app to free with IAP. And in the startup code check that flag . If it is true then unlock the full version.
rocotilosPosts: 3,216iPhone Dev SDK Supporter, Registered Users
What Mark_Comantis suggested could work,
but there is always the problem where there are STILL some users who have not updated to the "stepping version".. so they won't be able to get full version.
For eg: 10,000 users.
v1.1 - updated with boolean flag.
1 months passed 7,000 users updated app
v1.2 - update with IAP + Free.
Any of those 3000 users who haven't updated to v1.1 before wouldn't be getting the fully function app.
Unless you're willing to wait for months until at least MOST of your users updated it.
but there is always the problem where there are STILL some users who have not updated to the "stepping version".. so they won't be able to get full version.
For eg: 10,000 users.
v1.1 - updated with boolean flag.
1 months passed 7,000 users updated app
v1.2 - update with IAP + Free.
Any of those 3000 users who haven't updated to v1.1 before wouldn't be getting the fully function app.
Unless you're willing to wait for months until at least MOST of your users updated it.
Yep that's a good point!
Maybe you are already saving some settings to your local db or NSUserDefaults. If so, you can rename one of the settings in your next (free with IAP) version. Then check for existing of the old setting name in the new version. If the old setting exists (not null) then you can realize that they must have had the paid version, and unlock the full version.
For the future, I think it's always a good idea to save the current app version number to NSUserDefaults
One option would be to issue an update where you save a boolean flag to NSUserDefaults - (like isUserPaid).. and set the flag to true for all existing users.
Then in the next update you can change the app to free with IAP. And in the startup code check that flag . If it is true then unlock the full version.
Previous purchasers who delete the app and redownload it, or download it to a different or new iOS device won't have that flag in NSUserDefaults.
rocotilosPosts: 3,216iPhone Dev SDK Supporter, Registered Users
Mark_Comantis;440327 said:
For the future, I think it's always a good idea to save the current app version number to NSUserDefaults
This. ^^
iekei;440350 said:
Previous purchasers who delete the app and redownload it, or download it to a different or new iOS device won't have that flag in NSUserDefaults.
And this ^^
Still a problem. You can't cover all IMHO. Just choose a method and be done with it.
And perhaps, give a promocode for those who complain to you. (Is there a promocode for IAP items? don't think so)... So, probably you can give user who complain another of your paid app.
Well for the remaining users you could also make a "I've purchased this app earlier" button in your app, and when clicked provide them a uniquely generated ticket number and ask them to email you a screenshot of their appstore purchases screen and the ticketnumber. You could then add that ticketnumber it to a whitelist of ticketnumbers which you will also check in your app to enabled the in-app purchase :D
Shouldn't be to hard, but I think it would ask a little bit to much from the user and may not be worth the extra coding efforts..
Well for the remaining users you could also make a "I've purchased this app earlier" button in your app, and when clicked provide them a uniquely generated ticket number and ask them to email you a screenshot of their appstore purchases screen and the ticketnumber. You could then add that ticketnumber it to a whitelist of ticketnumbers which you will also check in your app to enabled the in-app purchase :D
Shouldn't be to hard, but I think it would ask a little bit to much from the user and may not be worth the extra coding efforts..
yeah^^ let's take rocotilos example: So he would get several mails from 3000 users with screenshots and he has to answer every mail and create a unique identifier. Further he has to check that screenshots are not sent more often (e.g. one user sends his screenshots to his friends so that they can get the IAP for free too). That sounds like fun ;) But I think that hardly anyone would do that in general. They would install the update, realize that they should pay again for features they already bought, get angry, write a negative review and delete the app. some might write you a mail but the majority would give you at least a 1 star review.
Why don't you just release a free "lite"-version?
Tell your client that it is technically possible but current users might stop using the app and rate it with 1 star. Let him decide so the result wouldn't be your fault.
yeah^^ let's take rocotilos example: So he would get several mails from 3000 users with screenshots and he has to answer every mail and create a unique identifier. Further he has to check that screenshots are not sent more often (e.g. one user sends his screenshots to his friends so that they can get the IAP for free too). That sounds like fun ;) But I think that hardly anyone would do that in general. They would install the update, realize that they should pay again for features they already bought, get angry, write a negative review and delete the app. some might write you a mail but the majority would give you at least a 1 star review.
Why don't you just release a free "lite"-version?
Tell your client that it is technically possible but current users might stop using the app and rate it with 1 star. Let him decide so the result wouldn't be your fault.
Well sure people could cheat, but I doubt people would do that much. I agree that this isn't the most elegant solution, but it would at least be good customer service.
And I think the administration problem isn' t as big as you suggest. First of all the estimate of 3000 would be to much with 50k users. Second, the unique ticketnumber mechanism could just be a auto increment id in a database on his server, that gets generated when the users presses that button (it would insert a row in the ticket table). All the developer has to do is flag a boolean in that same ticket table when he get's an email.
Thanks for all the feedback, your right it is a nightmare.
Now I know there is no 100% foolproof tech way I will write up the scenarios and let them choose.
I have the feeling they will decide against it , but the create unique ID is the most elegant and they have customer support people that could manage that queue daily anyway.
It is a bummer that Apple don't have any API's to allow for such a transition , it's just an additional API.
Replies
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeThen in the next update you can change the app to free with IAP. And in the startup code check that flag . If it is true then unlock the full version.
Hope that makes sense!
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like Awesomebut there is always the problem where there are STILL some users
who have not updated to the "stepping version".. so they won't be
able to get full version.
For eg: 10,000 users.
v1.1 - updated with boolean flag.
1 months passed
7,000 users updated app
v1.2 - update with IAP + Free.
Any of those 3000 users who haven't updated to v1.1 before
wouldn't be getting the fully function app.
Unless you're willing to wait for months until at least MOST of your users
updated it.
10 Detailed Steps to Submit Apps To AppStore
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeMaybe you are already saving some settings to your local db or NSUserDefaults. If so, you can rename one of the settings in your next (free with IAP) version. Then check for existing of the old setting name in the new version. If the old setting exists (not null) then you can realize that they must have had the paid version, and unlock the full version.
For the future, I think it's always a good idea to save the current app version number to NSUserDefaults
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like Awesome- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeI can move that and use it for upgrades.
Just doesn't solve those that uninstall and reinstall.....
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeStill a problem. You can't cover all IMHO. Just choose a method and be done with it.
And perhaps, give a promocode for those who complain to you. (Is there a promocode for IAP items? don't think so)...
So, probably you can give user who complain another of your paid app.
10 Detailed Steps to Submit Apps To AppStore
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeShouldn't be to hard, but I think it would ask a little bit to much from the user and may not be worth the extra coding efforts..
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeBut I think that hardly anyone would do that in general. They would install the update, realize that they should pay again for features they already bought, get angry, write a negative review and delete the app. some might write you a mail but the majority would give you at least a 1 star review.
Why don't you just release a free "lite"-version?
Tell your client that it is technically possible but current users might stop using the app and rate it with 1 star. Let him decide so the result wouldn't be your fault.
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeI agree that this isn't the most elegant solution, but it would at least be good customer service.
And I think the administration problem isn' t as big as you suggest. First of all the estimate of 3000 would be to much with 50k users. Second, the unique ticketnumber mechanism could just be a auto increment id in a database on his server, that gets generated when the users presses that button (it would insert a row in the ticket table). All the developer has to do is flag a boolean in that same ticket table when he get's an email.
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like AwesomeNow I know there is no 100% foolproof tech way I will write up the scenarios and let them choose.
I have the feeling they will decide against it , but the create unique ID is the most elegant and they have customer support people that could manage that queue daily anyway.
It is a bummer that Apple don't have any API's to allow for such a transition , it's just an additional API.
- Spam
- Abuse
- Troll
0 • Off Topic Insightful Disagree Dislike Like Awesome