iOS: In-App Purchase - ios

I have implemented in app purchase in my application with multiple products and my application is live now.
As i have created multiple products there organization id is eg. com.abc.product1, com.abc.product2 and so on and i have assigned that number according to the id i have received from web service response.
In my Xcode application i have assigned product identifier as com.abc.product and i am attaching that number dynamically to that identifier.
If i have more products to add in the application then i will create in-app products in iTunes connect.
So my question is i need to create new build for those products or i have to just create products and submit those for review.

If you initial app is approved and live, you don't need to create new Build to submit additional in-app purchases.
You can submit them at any time and submit in bulk as well. See below link for instruction on setting them up
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/SubmittingInAppPurchases.html

You can continue with this approach. But make sure that you are validating the product identifier with itunes first before showing it to the user, just to make sure that the identifier formed at client side is available at itunes also.

Related

iOS In App Purchase get product id in invalidProductIdentifiers array

this question is asked many times and i try many soluation but still getting invalid product id.
I'm done following steps:-
1) Created an App ID with Bundel Id "com.app.name".
2) Created In-App Purchase Products in itune "com.app.name.iap".
3) Created a Sandbox User.
4) Project Configured.
- On In-App Purchase in Capabilities tab
- add StoreKit framework and also done code
Q1) Is require bank detail for test IAP app?
Q2) is required register an IAP App ID for your application?
For Q2 i have some dought so detail following:-
In itune application is created with bundel id "com.app.name" and inside that created IAP with id "com.app.name.iap" and also created "com.app.name" app id in developer account.
is it compalsory to create new app id with "com.app.name.iap"?
The "Paid Applications Agreement" is required to test any IAP. It sounds like that could be your problem. Here is a handy blog post that covers the most common reasons for this problem, with #1 being the missing paperwork: Configuring In-app Products is Hard
Is require bank detail for test IAP app?
No , but you must login with the sandbox id as icloud account you created within test device.
is required register an IAP App ID for your application?
No you need not need to register IAP App ID . But you must have created it within app and app bundle id must be registered.

StoreKit payment extra data

I'm trying to implement in app purchases in my app. You can buy access to view a teams extra data. The amount of teams are dynamic so I cannot create a product id for all the teams. What I did now was create 1 consumable with a generic product id. When the user buys access I will save it on my server which one it is, but here is the problem. How do I know when I get called back that a purchase was successful which team it was again. Can I for example add extra data to the payment or something
This does not seem to be feasible currently, neither on App Store or Play Store. (for App Store, you might want to keep an eye on the future of SKPayment's requestData - but I would not be too optimistic)
1st approach: storing [productId: metadata] pairs
Since a user cannot make 2 parallel purchase on the same product id, you could store metadata (such as teamId) associated to the productId
The issue with this workaround is that a purchase can complete after your app has been killed/uninstalled
2nd approach: modified UX
A possible way to solve your issue is to invert your UX flow:
You could ask for the "payment metadata" after the purchase is actually made
Conclusion
I would ideally implement both approach: use the 1st one for most use case, and keep the 2nd as a fallback (as the 1st solution has a smoother UX)
I suppose you have to use non-consumables In-App Purchases for each team.
When you're adding a new team the flow is next:
Go to iTunesConnect and create a new In-App Purchase with id for the
specific team.
Create a new team on your server-side. Assign In-App
Purchase product id to this team into the specific field.
Once your app fetches the list of teams it will fetch product id for
each team (which you have been created in iTunesConnect).
Update In-App Purchases with product IDs fetched from your server.
Now you are able to make purchase.

Dynamic products in Apple In-App Purchase

How to deal with dynamic products in In-App purchase? We have an existing website having and admin panel where user adds his/her courses. There are thousands of courses and every day lots of courses created there.
Its not possible to add those courses to Apple In-App Purchase portal. Is there any other solution to use dynamic products to In-App Purchase? there are discounts and promotional coupons also applied. Is there any API exists which we can configure to our admin panel and course will automatically added to In-App?
Please help me and save my life...
There are four steps to add multiple IAPs to iTunes Connect using the Application Loader (Version 3.0 at the time of writing):
Open the Application Loader and access the template via the menu
"File" --> "Open App Import Template". Copy the template somewhere
else and open it with Excel or something similar.
Add all your IAP Information and save the file as a .txt. (Leave the
screenshot column empty.)
Create a directory where you add screenshots for each IAP. The
filename should match the product id of the IAP item. Example:
"com.companyname.appname.productId.png".
Use the import function of the Application Loader, where you will
provide the .txt and will be asked for the screenshots.
If everything goes well your IAPs are now added and you can open iTunes Connect to submit them for review.
Hope this will help you. or you can use some command line tool provided by iTunes connect called Transporter. more details here http://itunespartner.apple.com/en/movies/faq/Transporter_Getting%20Set%20Up#!
Unfortunately, there is nothing like that. You have to manually create product identifiers for in-app purchase. The product identifiers for which added in portal, those only works.

How to reset product id using In-App purchases?

I have two apps in my iTunesConnect account, both of them use In-App purchases. For both of them I need to create product with apriopriate product identifiers. For first app I created a product with apriopriate identifier, but that product should be in a second app.
So I removed that product from the first app, and then I tried to create the same one for the second one, but then error arised:
The product ID you entered has already been used. Enter a unique product ID and try again.
I really need the same product identifier in my second app. How can I reset or make it able to recreate for a different app?
Simply, it is impossible> Direct answer from Apple:
"After you submit your product ID, you cannot edit it or reuse it for another In-App Purchase. We are not able to reset the In-App Purchase product IDs for your account."

new In app purchases product for current app

I am working on in app purchases for content downloading.
Product list will return from the server and product id also. I am not clear about one thing:
Can I add new in app purchases without updating the app ? Because the product list will come from server side.
I just want to add In App Purchases from iTunesConnect and the product list on the server side.
Yes you can add new in app purchases without update the app.
You will need to add all of your product to iTunes connect & for sure get Apple approval.
When you return product like reten it with same IAP ID.

Resources