How to test In App Purchases through Apple TestFlight? - ios

I uploaded my first app to iTunes Connect (iOS 8, iPhone) and it's now available through Apple TestFlight for internal and external testers.
I created a Non-Consumable in app purchase for it and would like to test it. How can I add it to my beta app?
I'm getting this message in iTunes Connect:
Your first In-App Purchase must be submitted with a new app version. Select it from the In-App Purchase section in Version Details
and click Submit.
You do not currently have a iOS Paid Apps contract in effect. If this In-App Purchase was submitted with your app, then your app will
not be available on the App Store until your contract goes into
effect. Legal, Admin, and Finance users can go to the Agreements, Tax,
and Banking module in iTunes Connect to view your contract status.

TestFlight users don't require a sandbox account, but they will test against an automatically created sandbox account.
Sandbox Accounts
The moment a tester opens your application, a sandbox
account is created for them. This means it's no longer necessary to
create test accounts in iTunes Connect. Testing In-App Purchases was
never easier.
Source
Note that your TestFlight user is a legitimate App Store user. That user will be purchasing, restoring, etc. from the IAP in the Sandbox as opposed to the real IAP.
On iTunes Connect, the IAP can be "Approved" or "Ready to Submit" (or any other status, I think).

English
Testers - TestFlight - Apple Developer
Each build is available to test for up to 90 days, starting from the
day the developer uploads their build. You can see how many days you
have left for testing in the app’s details page in TestFlight.
TestFlight will notify you each time a new build is available and will
include instructions on what you need to test.
All in-app purchases are free during the testing period.
中文
测试员 - TestFlight - Apple Developer
从开发者上传的那一天起,每个构建版本可被测试长达 90 天。您可以在 TestFlight 的 app 详细信息页面上查看可供测试的剩余天数。
在测试期间,所有 App 内购买项目都是免费的.

you can test in-app purchase with test account.
go to itunes connect -> Users and Roles --> Sandbox Testers
then create an account for testing your in app purchase.
when test in app purchase try to logout from app store which uses your real account. then it will ask for itunes account while in testing in app purchase then enter your test account credentials.

Testing IAP is going to require a test user that you create under iTunes connect. Plus code in you app to implement IAP. Then to test it you "purchase" the item from within the app, under the sandbox, using that user id.
As far as I know TestFlight is no different than testing the IAP on your device by building directly to your device.
I'm assuming that you didn't just add the IAP bundle id and expect it to do something.
If you have not added code to support IAP, that answer is non-trivial within the scope of a SE answer. Google IAP tutorial. There are lots of good ones out there.

Related

Apple In App purchase with sandBox gets an error as “Your account has been disabled in the App Store and iTunes”

An iOS App has given for testing in TestFlight for testing In-App purchase
It used to test using the sandBox account, but now it's not working with sandBox and gets an error as “Your account has been disabled in the App Store and iTunes”.
Rechecked the product creation and checked the same - it's not worked.
Then created a new sandbox account and tried the same - its not worked, showed the same error.
Checked the issues in the web and from the related answers, tried to remove the account details from Settings --> iTunes & App Store - its not worked, showed the same error.
TestFlight users don't require a sandbox account, but they will test against an automatically created sandbox account.
This means it's no longer necessary to create test accounts in iTunes Connect.
Your TestFlight user is a legitimate App Store user, but doing in-app purchases made with beta builds are free within the context of the beta version.
More details available in the following section Testing in-app purchases with TestFlight by Marko Kruustük.

In App Purchase - iOS

I'm trying to add In-App Purchase to my app. My app is already on the App Store so I added my IAP's in iTunes Connect and I'm using the SwiftyStoreKit from Github to do a purchase.
When I test my IAP in the sandbox they work fine but when I submit the app the testers tell me that they can't perform a purchase. What can cause this?
There are a few steps you have to take into account:
1: If the IAP's don't show in the app, make sure that you use the same bundle identifier for your AdHoc distribution as te one you created the IAP's for.
2: what Eugene said: for sandbox, only sandbox testers can purchase tests. Create sandbox testers and make sure your testers log out first in their own App Store account, before trying to make a purchase with the sandbox user
3: also make sure testers NEVER use the sandbox accounts to make actual purchases; this will convert the sandbox account to a live account.
Hope this was of any help :-)
IAP's aren't that hard, you just have to make sure you don't mess anything up.
Only Sandbox Testers can make test purchases. It's NOT the users who are listed in Internal and External testers lists. Check iTunes Connect => Users and Roles => Sandbox Testers.

Steps for Testflight to test an in app purchase on IOS?

I cannot work out nor find up-to-date documentation that shows how to test in-app purchases on IOS using Testflight.
As far as I understand the use of Testflight negates the need for sandbox users. Testers can use their normal iTunes account details - correct?
I have enabled In-App Purchases for the app in the Developer Console.
I have uploaded In-App Purchases to iTunes Connect via Application Loader
The IAP are showing status 'Ready to submit'
The app itself is showing as 'prepare for submission' - it is way off submission yet, I'm just trying to test functionality.
The ID's of the IAP match those in the app code.
Is there anything else I need to do in iTunes Connect to get them working in Testflight builds?

How to test in App purchase for an live app

I saw this question but its not what i need :- Testing in-app purchase after going live\
I want to provide limited set of testers free access to In App Purchase for testing purposes.The first version of app is live i wish to upload new version. What are my options?
I can make every thing free through code on development build and install it on testers device but i don't want to go this way.
Will the IAP test accounts work if one version of app is live already?
For Testing In-App purchase you have to login into your developer account and add Test user account for In-App purchase . Search for Sandbox In-App purchase testing and app you will get relevant steps.

In App Purchase and Apple Review

I am trying to add in-app purchasing to an ios application which has been available on ios since 2010. According to Apple, I must submit my first in-app feature along with submitting an update to the application. The problem is that I can't test the in-app purchasing process in my code until the in-app feature is listed on the App Store. But Apple won't list the in-app feature on the App Store until they approve the product update. This is a very bad Catch-22. In my most recent attempt (third try), I put draft, untested code in the product to handle the in-app purchase. But of course I can't test it until Apple puts the feature to be in-app purchased on the price list.
Am I missing something? The Apple Review people sent me to Apple Tech Support. The Apple Tech Support people sent me to Apple Review. Any ideas to work around their Catch-22?
You should be able to implement the In App Purchase system into your app version as well as creating an iAP item in iTunes Connect, then use a Sandbox account to test purchasing of the content. The iAP doesn't have to be approved for that.
Sandbox accounts can be made in iTunes Connect under 'Manage Users'.
Apple Docs: Testing in the Sandbox

Resources