Unibill, testing iOS In App Purchases & Unity - ios

Big headache! I cannot get IAP to work on my iPad device.
I have created a developer account on iTunes.
I created some app information, SKU etc., without uploading a binary.
I have set up Unibill to use the bundle identifiers and Ids as shown in the iTunes dashboard.
I logged out of existing users on the iPad.
I created a test user with a new email.
I fooled around with Xcode settings, trying a million different settings, but mainly following the documentation best I could: specifically, linking the Storekit library.
Unibill initialization keeps returning a 'CRITICAL_ERROR'. Maybe it's a Unibill problem, but what could I have forgotten?
Does testing In-App Purchases require a special contract type?

It is probably not the fault of Unibill. There are too many reason for the failure of IAP test. Basically, you can have a look at this check list first. Follow the questions could solve for most situation.
But there is something not correct in that checklist, the most important one is you do not need to upload the binary.
For your situation, I suggest you check the following things:
If you can create the IAP product, so it seems your contract is OK. IAP need a valid paid contract and correct bank information. So you can check if your bank information is correct or not.
Did you try to uninstall the app in your device and install it again? The old one would not be luck.
Did you generate and use new provision file for the build? Maybe old one does not contain the IAP feature.
Check your app id, version and build version. They should be all set properly or the IAP won't work.
Hope it can help.

Related

Transfer app Test filght

I have an app uploaded on Testflight which has been expired from my developer account. I want to upload the same app to Test flight from another company developer account. Will it create a conflict?
There is no transfer option in Testflight mode.
If you haven't already read the documentation, you can find it here:
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/TransferringAndDeletingApps.html
Key points to highlight in your case would be:
Make sure your accounts aren’t in a pending or changing state.
The App must have had at least one version that has been released to
the App Store
The last point is the most troublesome but it happens -_-

In-App Purchases what am I missing? [swift]

I'm trying to learn how to implement in-app purchases.
I found this really useful guide LINK which is related to this GitHub project LINK.
The project works by itself I only needed to create a couple of things in order to let it work:
I created a sandbox account for testing (without paying :])
I created a new App in iTunes Connect using my bundle identifier
I created the in-app purchase as requested by the app
I created all the App IDs and Provisioning profile for the App and connected to it
Running the app everything goes smoothly but the only thing (and most important one) it is that the transaction fails.
I have no idea where to look since I think I've everything correctly.
Someone can help me through the process reaching the end?
Thanks
The answer is quite easy and I found it HERE
The In-App Purchases do not work on the simulation a real device must be used!
In fact I used a real device and everything worked smoothly.

In App Purchase Packaging

First my question, then my situation:
Question: Can a new binary be used as an IAP? So instead of using the IAP feature to download say a weapon pack or a song, can it download a completely new binary of the same app, that way when the user upgrades they no longer have ads and they have additional features that weren't present in the free version.
Situation: As brief as possible, Apple has approved both my IAP package and my new free version for the public to have accessibility to upgrade. However, when trying to upgrade, after making the purchase (sandbox or live), nothing happens... the account gets debited the 99 cents, but the user never receives the paid version of the app. I'm assuming that there's an issue with the actual package.... which leads me to believe that Apple approved it without checking the integrity (perhaps it's not Apple's responsibility, but I figured that checking for a faulty IAP would be just as important as checking for crashes).
Am I on the right track about the packaging being faulty? Could it be something else? If doing a new binary is possible, is there documentation anywhere online about setting it up properly?
Thank you!
You are going about this all wrong. You can't provide an updated app as an IAP. Your free app with IAP must include all desired functionality built into it. When the user purchases a feature through IAP, the existing app uses that as a flag and simply starts letting the user use the additional feature(s) or to stop displaying ads.
Basically on startup your app checks to see if the user has made the in-app purchase or not. If not, you show ads and/or hide certain functionality. If they have, you don't show ads and you show the appropriate functionality.
In-app purchases are there for products which on download can be used after purchasing. But in your case you are downloading the full version of the app on in-app purchase. Do you have any way to load binary of an app? No, right?
What you can do is just disable all functionalities of full version of the app through coding, when on purchase just enable all features for pro version.

struggling testing IOS in app purchase with xamarin

For the last couple of days I have been struggling trying to set up the enviroment to test in app purchase in xamarin. Their docs page is not very clear on what it needs to be done, at least for me.
For what I have researched, I need to sign a contract with apple, which requires me to give apple some information about my bank account, taxes, etc. That information is going to take a little while, maybe a week. So without contract, can I test in the sandbox mode in app purchase?
So far, I have created a development provisioning profile, my app id and bundle id as well, the products which I am going to sell within my app, and my test users. I tried getting product info from my device, but it did not work, no error, or app crash. Probably I am missing something here which causes this behavior.
I read in this page that I need to install my provisioning profile and configure xcode to sign the app with this profile. How do I do this in xamarin studio?
Also, I need to tell xcode whats the application bundle id, again, how do I do this?
I read the In-App Purchase Programming Guide and gave me an overall understanding about the architecture needed to implement in app purchases, but I am failing on the little details.
Any help would be appreciated. Thank you very much.
CraigD's answer to this may help: IAP ( In App Purchase ) sample for MonoTouch?
It doens't touch on live testing per se, but Craig's github example may help you with those details of implementation.

In-App-Purchase item not longer active after app update

I have an App in the App Store which uses an In-App-Purchase item to unlock the full feature set. During all versions so far updates have never been a problem. The customers could download the new version from the App Store and the "full version item" which they did purchase before was still active: They could still use the full version after the update.
Today I have released a new version of the app and several customers are reporting problems with the full version: After the update the app only works as limited trial version. The app seems to have "forgotten" the information about the IAP.
I use MKStoreKit to handle the purchase and the information about the IAP is stored within the KeyChain. The users can restore the full version using the "restore previous purchase function" within the app which calls the corresponding StoreKit function.
How can it be that the information in the key chain is lost?
I do not know if all customers are affected by this problem or just some of them. All that I can tell is, that quite many reported the problem.
I have no idea what the problem might be.
This is the first version using iCloud and therefore it is the first time, that a entitlements file is included in the App. Could this be the source of the problem?
The "Keychain Access Groups" property in the entitlements file is set to "xy.mycompany.MyApp" which is the same as the bundle identifier.
I thought that without the entitlements the app used "xy.mycompany.MyApp" within the key chain to store the IAP information and that the information in the entitlements file is just to let different app share the same information in the key chain. Thus I am not sure if this might have to anything with the IAP problem.
What do you think? Any ideas or suggestions?

Resources