Feature: In-app purchase support on develop

in-apppurchases
ios
android

#1

In-App Purchase support in JUCE

 
We’ve just pushed JUCE in-app purchase support for Android and iOS on the develop branch.

This enables your app to use in-app purchases from the Apple and Google Play store.

You can find the API documentation for In-App purchases in the In-App purchase juce header for now. You’ll also find some sample code for a fun in-app purchase app here. Be careful, the in-app purchases in the sample app will really charge your credit card.

The API is still preliminary and is likely to change. If you want to give it a spin, then clone the develop branch from github as usual or download the latest develop branch from here:

https://github.com/WeAreROLI/JUCE/archive/develop.zip

Please have a go and let us know what you think.


#2

Fantastic news. But pretty please can we have Ableton-Link and AudioBus3 support too ?

They are becoming more and more prerequisite in any iOS music app that does some form of sequencing or pattern/loop player based functionality.

Just wish they were all eventually adopted into iOS but doubt it will be so for a long time. Musos aren’t apples priority - clearly.


#3

Great, thanks. Rolled my own recently so will see how this replacement goes


#5

In order to get Ableton Link in your iOS App you need a specific license (see http://ableton.github.io/linkkit/), so I don’t see how JUCE could provide it.


#6

Please don’t hijack threads to nag us about unrelated feature requests - that’s very poor forum etiquette!


#7

18,364 additions and 0 deletions.

Impressive.

Seeing that your demo app “will really charge your credit card,” is there no sandboxing available? How else can we get this type of thing properly straightened out during production before hitting the public?

Edit:
Found a StackOverflow post pertaining to iOS in-app purchase testing.

For Android: Testing In-app Billing


#8

Another question; is this feature not available from within macOS itself?

I’d like to ask the same for Windows, but that requires support for WinRT. :slight_smile:


#9

The sandboxes require white listing of test accounts. If the accounts are not whitelisted then the in-app purchase dialog won’t even open on Android. Obviously, white-listing every user who wants to test IAP would not be feasible, so we decided not to use the sandbox for the demo - so that the IAP purchase dialog will at least open. Obviously, you really shouldn’t go through with the purchase as it will charge your credit card.

Obviously, the JUCE team now has the enormous task of figuring out what to do with the money of fat-fingered IAP purchases :wink: . Here are some of our ideas:

  • Pay a London street poet to do a mash-up poem of the most popular forum posts and post it here
  • Buy a JUCE advert at the super bowl 2018
  • Pay a colour designer to add Colours::jetblack to the list of juce colours

Any suggestions?


#10

That’s gold Fabian :smile:


#11

Does this support Content Hosting, where you can download the consumable goods from Apple’s Hosted servers via In-App purchases?


#12

Yes it does but only on iOS as Android does not support this.


#13

And it includes the Restore In-App Purchase code as well?


#14

Yes.


#15

I pulled the latest JUCE-develop branch, and ran the InAppPurchase demo on an iPhone 7 running iOS 11.0.2. When I run the app, after being prompted to sign in to the iTunes Store and entering my password, I receive a system dialog saying:

There’s no information available for In-App Purchases. Try again later.
21105
[Environment:Sandbox]

I then get an additional system dialog warning me that my credit card will be charged. None of the purchase items are available and they are unable to fetch their prices.

Any idea what’s happening here?


#16

Hi @jdowning, sadly a recent update to the in-app purchases of the in-app purchase demo app was rejected by Apple as they do not allow in-app purchases for demo code - so all the in-app purchases are disabled atm. I’m trying to argue with apple that there is benefit in allowing in-app purchases for this demo app but I wouldn’t get my hopes high.

However, if you use your own app bundle id and purchase ids then the JUCE in-app purchase code will work. Also, the in-app purchase demo app does run on Android.


#17

@fabian I posted a report of a crash with in-app purchases on IOS here.
Is it supported on earlier iOS versions?


#18

I’m using the IAP code back to 9.0 and not seeing any crashes


#19

Haha, this gave me a good laught.
Any cash inflow yet? :wink:


#20

@leehu thanks for confirming. Its weird that we only crash on two different devices that have IAP. If we comment out that line nsStringToJuce (skProduct.priceLocale.languageCode) then it doesn’t crash but that obviously isnt the fix.


#21

Hi all. As mentioned in In-App Purchases crash on iOS 9.3 thread, the crash is now fixed on develop, commit 2ff20da