Remove in-app-purchase option from iOS app - ios

I want to submit an iOS app to Apple that doesn't have in-app-purchase enabled.
When I go to iTunes Connect and look at the In App Purchases section for my app I cannot see anywhere where I can remove the in-app-purchase option for my app.
I need to do this because Apple complains when I submit my app that there is no privacy policy and it won't allow submission.
I get the following error message when submitting the app:
"Apps that use the entitlements [com.apple.developer.in-app-payments] must have a privacy policy for [English]. If your app doesn’t use these entitlements, remove them from your app and upload a new binary."

In iTunes connect, you need to go to your product and set it to "Remove from Sale". You can then delete it.
Also, In Your Project --> Target --> Capabilities --> Turn In App purchases to off.
Removing Products from Sale You can choose to stop an In-App Purchase
product from being sold in an app. If you do, the In-App Purchase
product remains in iTunes Connect.
Important: Removing a product from sale prevents auto-renewable
subscriptions from renewing, but it doesn’t keep users from being able
to restore products that they purchased previously. bullet
Deleting Products You can delete In-App Purchase products after
they’re created, but not if they’re In Review. To delete a product
after it is available for sale, you must first remove it from sale.
Important: After you delete an In-App Purchase product, it’s no longer
available on iTunes Connect and it can’t be restored. The product ID
can’t be reused for another In-App Purchase product.
https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/WorkingWithYourProductsStatus.html#//apple_ref/doc/uid/TP40013727-CH33-SW19

This could be related to your App Id identifier setup which together with the iOS certficate is your provisioning profile which you use to sign your app.
If you have created an Explicit App Id ( no wildcard in Bundle Id ) then "Game Center" and "In-App Purchase" services are automatically enabled and cannot be disabled.
https://developer.apple.com/library/content/technotes/tn2259/_index.html
Explicit App IDs are App IDs whose Bundle Identifier portion is a string without the wildcard ("*") character. Furthermore, they are automatically registered for in-app purchase and Game Center...
This can be configured here
https://developer.apple.com/account/ios/identifier/bundle
A Wildcard App ID could be what you need.
You would have to recreate/edit the provisioning profile and sign your app with that.

Related

SKProductsRequest returns no product in production environment

I have an iOS application which uses in-app purchases.
I have already set the environment:
Set the Agreements Tax and Banking section,
Created iap products
Turned on "In app purchases" in the capabilities tab
Implemented my code to retrieve the product list and to perform a purchase validating the receipt server-side
I have also tested all with a sandbox environment and all works as expected: the list of products is correctly received by the store and i can purchase a product validating the corresponding receipt.
I have also tested the application using testflight which creates automatically a sandbox user for all testers and all works as expected.
I submitted my application to the Apple store and the revision has been passed so that at the moment the application is in "pending developer release" status, all the products have been approved:
In order to try an actual purchase (using a real credit card) I have generated a promo code with iTunes connect and I have installed the application on my iPhone.
However, when using the application downloaded in this way I can't see any products in the IAP section of my application. It seems the application downloads an empty or invalid product list. The same application version works fine with Testflight. Is the use of promo code permitted with IAP? Why I can download a proper list of products only using a sandbox user? Since I can't debug my application, how can I find the problem?
EDIT
I found found here the following points about invalid Product Identifier problem:
Have you generated and installed a new provisioning profile for the new App ID?
Have you configured your project to code sign using this new provisioning profile?
I have generated the App Id managing signing automatically with XCode.
In the developer portal I have the App ID in this form
Currently, I don't have generated any provisioning profile, in fact I can't find it in the "Provisionig Profile" section of the developer portal. And, as you can see in the image above, in Xcode I see "XCode Managed Profile" as a Provisioning Profile:
Is this a problem? If yes, how should I fix it? Is it enough to generate a new provisioning profile manually and install it on my machine? Should I upload a new build for my application?
If the provisioning profile is missing, why is my application working correctly using sandbox users and Testflight environment?
The problem was that, actually, you can't download a list of product until the application is in the "ready for sale" state. As stated in the In app Purchase FAQ:
"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."
So if your application is in "pending developer release" status, you can't get the product list with an application downloaded through promotional codes.
Once the app has been released on the store, the product list has shown correctly.
The problem was not related to provisioning profiles: the auto-generated provisioning profile is valid to submit applications with in-app purchases functionalities.

How to test in-app purchase ios

I built my app with ionic, and now I am ready to test it.
I am able to sign it correctly with certificate and provisioning profile from my apple developer account.
In my app I added also in-app purchase. I used the cordova plugin.
Next I enabled in Capabilities section, the In-App Purchase menu.
Then, in iTunesConnect I created a product, and once did it, I uploaded again a new build and connected my app with this new build. Keep in mind that I set also the product in the tab App Store in iTunesConnect.
For now I am using Test Flight to test the app, and it works fine
In iTunesConnect, in the "in-app purchase" section, I have this notice:
"Your first in-app purchase must be submitted with a new app version. Select it from the app’s In-App Purchases section and click Submit.
Once your binary has been uploaded and your first in-app purchase has been submitted for review, additional in-app purchases can be submitted using the table below."
In the In-App Purchase section, I can see only one product with status "ready to submit", and I am not able to submit in some way...
I followed some help on line, but with no success.
Please help me!
Thanks
Login to itunesconnect.com -> User and roles -> Sandbox Testers
Add a sandbox account -> install your app in device -> Sign In with the Sandbox account in your device -> Test your app.

iOS App ID - In App Purchase Disabled (Can't be enabled)

I have created beta version of my app and uploaded it to iTunes Connect for TestFlight testing without any problems.
Later, I decided to implement In-App purchase. I visited apple page with identifiers and found out that there is already explicit App ID for my app. I wanted to edit my explicit App ID and enable In-App purchases.
When I clicked "Edit" button, I found out that In-App Purchase checkbox is grayed out and cannot be edited.
The In-App Purchase should be enabled by default according to the apple documentation:
Explicit App IDs are App IDs whose Bundle Identifier portion is a string without the wildcard ("*") character. Furthermore, they are automatically registered for in-app purchase and Game Center
Any idea how to enable the In-App Purchase? (I would like to use the same bundle ID).
Am not sure if it was some sort of bug or I really resolved the issue.
Here are the steps I have done:
1.)
Enable In-App Purchase in Capabilities
2.) Upload new version of the app to the TestFlight testing. I have checked my AppID afterwards, but In-App purchase was still disabled.
3.) Wait... Relax, enjoy the weekend. :)
4.) Check your App ID after the weekend

Testing In App Purchases on TestFlight

I am trying to test In App Purchases on TestFlight but some things are not clear to me.
I have created my In App Purchase Products and their statuses are 'Ready to Submit'. However at the top on the screen it says "Your first In-App Purchase must be submitted with a new app version. Select it from the app’s In-App Purchases section and click Submit."
So when I click on the 'App Store' tab at the top and then under the 'iOS App' subheading I click '1.0 Prepare for submission'. I am taken to the screen where I fill in the App Store information of the App as if I was going to upload the App to the App Store. There are inputs for me to fill in the description, keywords, screenshots, app icon etc. And I also see the section were I can add some In App Purchases which is what I assume is meant by the previous message "Your first In-App Purchase must be submitted with a new app version. Select it from the app’s In-App Purchases section and click Submit." Here I can select my IAP products for my first submission.
My question is this:
1) I don't want to actually put the app on the App Store yet. I just want to test the IAP on TestFlight with my testers. I assume I need to click the "Manually release this version" radio button when I submit the app for review for this to happen? Or am I meant to do this another way?
2) Since I need to fill in the description, screenshots etc, it sounds like the app basically needs to be completed before I can submit it for review. Could I just add some dummy descriptions and screenshots here? Or does the app really need to be in a close-to-finished state JUST to TEST In-App-Purchases?
Thanks for the responses.
For testing In-App Purchase on TestFlight you don't need to submit app.
You have to test In-AppPurchase with sandbox account. For in-app purchase from your app you have to logedin with existing id and set your sandbox account in itunes and purchase.
Create sandbox Account (test user for In-App)
Goto iTunesConnect >> Users and Roles >> Sandbox testers >> add
give this test accounts credentials to all testers for testing IAP or make many testing account.
make sure when you have to submit for review please add your in-App
purchase with the review (from prepare for submission >> Add In-App
purchases).

iOS - Inapp Purchases - setting in server

I am creating iOS app with in-app purchase feature in it.
I created the app id, profile etc successfully.
I also added the in-app purchase ID, etc in apple's itunes connect.
But on the top I'm seeing the following message:
Your first In-App Purchase(s) must be submitted with a new app version. Select them from the In-App Purchases section of the Version Details page and then click Ready to Upload Binary.
I didn't understand what does it mean?
When I'm testing, i'm not getting response from server.
how to identify and correct the issue.
this is my first app that will be pushed to app store.
Once the bundle id for the app is created, app store app is created, in-app purchase id's are created, we need to push dummy app and immediately reject it.
Then only in-app purchases work. else it wont

Resources