We have app which provides consumable In-app product to buy eBooks. We are following 2 issues as below:
Issue 1:
We have installed our latest app from appstore & trying to buy eBook, we don't have previously added Credt/Debit card in iPhone. While purchasing we have enterd those details. It redirects to Appstore/Settings, but not returned back to our app. And Money has been deducted but In-App not notified in App.
Issue 2:
Next time onwards, using same iphone & same apple id, We are getting " Product is already purchased." even thought it's consumable In-App.
While in Settings we can see our purchase in "Pending" status.
We tried to debug issue but all things are working perfect in Sandbox Environment.
Let us know is there any issue at apple end or we have done something wrong. We do have our app live on appstore since long, but we are facing this issue from 4-5 days only. Please help.
Thanks in Advance.
Related
I read many answers here with similar problems but none helped me to get my app approved. It's been 3 weeks of trial and error. I am totally frustrated of it.
What I am trying to do:
I am submitting my first app (there is no other app with my account created yet).
I have one in-app purchase (nonconsumable) in my app that removes ads and opens all content.
Sounds easy right?
I have been rejected for a few different reasons that has one thing in common - they (Apple testers) cannot successfully perform in-app purchase.
What I did:
Successfully bought and restored in app-purchase with my sandbox user.
At first I was using swifty storekit library. Got refused with "Unknown error. Please contact support" So I ditched this library and Implemented whole code myself, according to apple documentation.
As I read there can be problem with my agreements, tax and banking settings in Itunes connect - found out that there was red line about transfering my account settings (dont remember exact line) - did dissapear after 2 days by itself as I read in some answer here. There is no problem there now.
Did find out that I must wait some time before in-app purchase starts working. I takes about 2 days to in-app purchases start working with testflight user, so waited until it starts to work - then successfully bought in-app purchase and restore also works fine even with testflight testing account. (again got refused)
there is not exactly stated how to submit first in-app purchase ever, it is just said submit with binary. I did not get this at first, found out that I should not send in app purchase by itself, but I should "append" my in app purchase in the same form as I am sending my app. At first I tried to send my in app purchase in its own formular. But then I got rejected with error "We found that while you have submitted in-app purchase products for your app, the in-app purchase functionality is not present in your binary." (I say it again - there must be api there as I can successfully buy app with test account).
read in some other answer that I can ask to get my in app purchase approved, so I write "please approve my in app purchase - they did, but I got refused.
Now I cannot select this in app purchase with my binary, as it is not shown for selection probably because it is already approved. So I did submit app without it and got the "in-app purchase functionality is not present in your binary" error again.
Created new in app purchase, this one can be selected to be submited with app. Got rejected again, with error.
"can not connect to iTunes"
In app-purchase is then switched to "Developer Action Needed". This is probably a good thing as if they would approve it then I could not select it with binary as it would be invisible.
What else should I try? What to change? Where to look? I am totaly lost. 3 weeks of time lost. As I cannot reproduce the problem I cannot solve it. Programing is easy, but to get app approved looks like imposible.
Few of many many visited links:
In App Purchase functionality is not present in your binary
iOS In-App purchase works in development but not in production
https://forums.developer.apple.com/thread/13324
https://www.innofied.com/in-app-purchase-working-ios-solution/
What I did next: recorded video of myself successfully buying in app purchase with my testflight account and uploaded it to youtube, added link to my reply form.
Next try: I sent them this message:
"Good evening,
I am totally out of options. Is there anybody at apple who I can consult this? ... Because, everything is working on my side. As I cannot reproduce your problems I can't make it right.
I have tested it with my sandbox user - it works - I can make a purchase successfully and I can restore it too. I noticed that with testflight it needs some time to start working (about two days). So with this build I waited two days and when it did start working on testflight i submited my app. This is my first submit of app ever, should I do something special? You already approved my first in-app purchase in one of my trials, but I cannot select it to be published with my app as it is already approved (it is not shown, so cannot be selected) and if i dont submit it with my app then I got rejected with confusing error stating that in app purchase api is not included. So I created second in-app purchase - the one submited here which is now after rejection in "Developer Action Needed" as you rejected the app. So what can I do now? Don't you need to wait some time after you approve my in app purchase (submited with the app) to start working? Did you approve my in-app purchase which I submited with my app by the way? Please dont send me link to the documentation. As everything works on my side there is nothing I can find there. Give me some advice or contact to someone who can Investigate what is wrong on your side, as you cannot make it work... thank you in advance"
After rougly one day, status did change (they changed) to "in review", and after another half hour I did get email with "Congratulations! We're pleased to let you know that your app, Juggling, has been approved for the App Store"
So to answer my own question ... how to get through application approval? I don't know. What I did wrong, what should I do? I don't know. Are there real people there or artificial inteligence? I don't know. What exactly was the problem? I don't know. What did finally do a change? I don't know. Hope this answers will help next generations of programmers get their apps approved in the future. (Pun intended)
Thank you
Last week I successfully created IAP product on "Features=>In-App Purchase" Menu on iTunes Connect. And I tested that product through sandbox and it was worked fine.
And I also can link my IAP product to my specific version of iOS app. (App Store => specific version of iOS APP ) So I submitted app for review.
However, During the state of "In-Review", I found some critical bugs and I rejected submit on myself. (Developer rejected). I fixed bugs, and tried to submit again with new binary.
But I can't find linking IAP product on my app. Last time I remember there was a section for linking IAP product to my app on specific version of iOS app. Like below, there is no linking section. it was disappeard.
I totally don't understand... I signed the contracts, and input bank information successfully. I can create IAP products, but I can't link these to my app. What is the problem?
I read some stackoverflow questions, perhaps Missing In-App-Purchase section in iTunes Connect this question is very similar with my situation but I can't resolve it. Thanks in advance...
Guys I found solution...
Crazy... your IAP's status in "waiting for review" you can't link that product to your app.
At least you have to have one of "ready-to-submit" IAP product...
WTF
During development I've created test accounts which are able to obtain the price of the in app purchase as well as actually purchasing it without an issue. However after publishing the iOS app to App Store, the version of the app in App store can't even retrieve price of the product, and nothing shows up when I press the button to send the purchase request.
Uninstalling the app and redeploy the development version to the same device got it to work again.
What could be the problem? Is there a way to debug or see logs on the app store downloaded version? (iOS noob here)
Thanks!
I had the same problem. The app was approved but in-app purchases were not working. After 24-48 of app publishing problem was fixed by its own. By the time app approved it was not appearing on App Store through search. After it was indexed on App Store in-apps started to work also.
It takes a little time even when everything is approved.
My binary was approved.
My In-App Purchase (IAP) was approved.
Testing the purchase in development with a sandbox iTunes Account worked great.
Purchasing in production with a real or sandbox iTunes Account would fail.
I didn't have to wait long, something like a couple hours and it just started working.
Now, my binary and my In-App Purhcase were approved at the same time and almost immediately after they were both approved, I released the app version to the store.
I'm not positive, but what I probably should have done was wait a couple hours before releasing that new app version and give the In-App Purchase a chance to "register" or "propagate" in the Production App Store.
Just a recommendation for others.
It takes some time, but the amount isn't predictable. In my case, I launched 3 very similar apps at the same time, so just add some data on this :
Everything was approved, the apps were quickly available on the App Store.
It took about 4 hours for 2 of the apps to show up in search results.
After 6 hours, IAPs started progressively showing up (not all at once) for these
After 9 hours, IAPs for the two apps were complete.
After 12 hours, IAPs for the last app started appearing, but the last app itself still wasn't showing up in search results.
After 14 hours, the last app appeared in search results.
The order in which I hit the "Publish" button didn't seem to have any influence, nor the number of IAPs, weight of the app, etc.
So delays are unpredictable and do not follow a specific rule ("First-in, first-out" or "search results and then IAP")
I found this Apple Tech note, which is includes follow:
Q. App Review has recently approved my application, but my In-App Purchase identifiers in the production version of the application are being returned in the invalidProductIdentifiers array.
A. When an application is approved, the developer must also approve the application for release to the App Store. On approval, the application ID is activated to the App Store. The same activation is required for the in-app purchase identifiers and can only take place once the application is activated. In some cases, the activation of the In-App Purchase identifiers may lag up to 48 hours following the activation of the application.
If the developer does not approve the release of the production application to the App Store, then any new in-app purchase identifiers will not be activated. This is an issue when a developer wants to verify the application prior to activating it on the App Store. If the desire is to test the in-app purchase process for the new items, the application must be activated to the App Store. This is only an issue for new in-app purchase identifiers in a corresponding application submission. Once these in-app purchase identifiers have been activated, application updates to the submission will find that these in-app purchase identifiers are validated, even if the update is not activated.
But in my case it takes even further, about 52 hours.
I found that doing a simple edit of the description in each IAP helps. Just make an edit, save it, revert to the original and save again. It took up to 8 hours for it to propagate across Apple servers. IAP's I didn't do this to had no change.
I've just released my first app with iAP. It always worked fine in development, but in production it crashes when I try to make a purchase.
It seems like the app dosn't download my "product" in production mode. Have anyone else had similar problems, what did you do to fix it?
Recently I had submitted my app and it has a same issue. After spent some time on google I found that sometimes application available on store early and apple's production server takes time in updating products so wait for 24-36 hours. It will be automatically fixed.
Edit
Jagdeep has pointed towards a good point. Check status of your products it should be in "Approved" state. In my case it was in approved status.
When you have created product you have checked the option "Clear for Sale"?
From Documentation :
Clear for Sale indicates whether your In-App Purchase is cleared for sale or not. If this box is unchecked, your In-App Purchase will not be available for purchase from within the app. Note that if you set Cleared for Sale to No, all settings for the In-App Purchase will still be available to edit in iTunes Connect, and you can change Cleared for Sale to Yes at a later date.
It takes a little time even when everything is approved.
My binary was approved.
My In-App Purchase (IAP) was approved.
My In-App Purchase was Cleared For Sale.
Testing the purchase in development with a sandbox iTunes Account worked great.
Purchasing in production with a real or sandbox iTunes Account would fail.
I didn't have to wait long, something like a couple hours and it just started working.
Now, my binary and my In-App Purhcase were approved at the same time and almost immediately after they were both approved, I released the app version to the store.
I'm not positive, but what I probably should have done was wait a couple hours before releasing that new app version and give the In-App Purchase a chance to "register" or "propagate" in the Production App Store.
Just a recommendation for others.
Check your status in itunesConnect site -> Manage your purchase. Make sure your in-app-Purchase has been passed from review.
i've searched around a similar question but i didn't found any, so:
I have an old iphone paid app on iStore (and a free/lite version with iAds banner), now i want to renew it, adding iPad version and other stuffs;
with this new version i'd like to set the app free, add in-app purchase to the paid app (and delete the lite version), adding iAd banner until user buy the in-app purchase item.
the problem is that an old user who paid for the old app and now download the new version will see the iAd banner (and of course i don't want this) and must pay again to avoid it.
Is there any way to check if a user of my new-version app is also an old user of the old-version app?
A partial solution i found out is to check a preference file that the old app saves in it's bundle documents folder, but that could work fine just in case the user has installed the old app on the device when he update my app, not in case he deleted from device (or installing to a new one)
Other solution could be to keep the lite version on iStore and add the inApp purchase only to that version, and let the full version with the current price, but doing so, the lite version after a user pay for inApp purchase item would become exactly equal to the piad app (and Apple may refuse this, and i don't like this solution too)
Any idea for this purpose, is there an easy way i have not seen?
thanks in advance
There is no way how to find out if the user paid for the app. The solution with the "bundle documents folder" is not good in my opinion, because once the user delete the app, he will not have available the premium version of the app again.
Similar questions:
Convert existing iOS paid app to freemium model with in-app purchase
Transition an existing paid for app to free version with In App Purchase
iPhone + upgrade existing paid application on app store to free application with In App purchase + what about the customers who have already purchased the paid application
I too had similar issues where I wanted to switch a paid app to free. There really isn't anyway to reliably check which user had already downloaded your app in the past. If you add iAds and they only disable through in-app purchase then it means it applies to everyone.
While writing this post I thought of one trick. Lets say you submit your app with iAd changes today to app store and it gets approved on 7/20/13. What you can do is upon app startup have a grace period code check i.e.
if (TodaysDate < 8/20/13)
{
//Make your NSUserdefaults to true. As if the user had purchased your in-app purchase. So don't show them any ads.
}
else
{
//Month has passed and hopefully most of your users who owned the app already had updated it by now
}
This way you have given your existing and any new users a month time (with no iAds). Any users who download the app after 8/20/13 will see your iAds and will have to pay in-app to disable them.
From my experience I have found that it's always advisable to keep your current users happy otherwise they will bomb your app rating with negative reviews. Which will show up under your latest app update.
Have you tried contacting developer support? https://developer.apple.com/support/
From what I know to be true you can't tell if they have previously bought the app without invading their privacy.