-
Notifications
You must be signed in to change notification settings - Fork 101
Tutorial for Newsstand with In App Purchase
Using Baker is simple and even if there are some technicalities involved, it's doable with just basic technical knowledge.
This tutorial assumes that you choose the Newsstand publication support in Baker and you want to sell issues and provide auto-renewable subscriptions (note that non-renewing subscriptions are not supported).
If your app only provides free issues, see Tutorial for Newsstand with Free issues.
REQUIREMENTS
- A Mac with Xcode
- An Apple iOS Developer account (required to test Newsstand and publish to the store).
- A server (to store your issues and handle In App Purchase validation and tracking)
- Create your issues using the [HPub tutorial](How to package an HPub).
- Zip the publication and rename from zip to [Hpubs](hpub specification) (remember to select all the files and zip them, do not zip the folder)
-
Upload the Hpubs to your web server. Test and make sure that you can download them from a browser. (e.g.
http://example.com/publication/issue1.hpub
). - Prepare a cover thumbnail image in PNG format for each publication and upload them on the server as well.
Note that you won't have to put the hpub files in the books/
folder (or anywhere in your app really). They will have to go on an external server along with the covers and the shelf.json
file.
To sell an issue, you need to create a corresponding non-consumable product in iTunes Connect. Follow Apple instructions to do that, we can't unfortunately provide support for the Apple side of things.
- You need to have your application already created in iTunes Connect (don't worry, it's not submitting anything yet).
- From the iTunes Connect page for your application, select Manage In App Purchases.
- Click the Create New button.
- Select Non-Consumable.
- Fill in all the required form fields. Baker will need a reference to the Product ID, which will be something similar to
com.example.Baker.issues.january2013
.
To meet the App Store requirements for a Newsstand app, you must provide a subscription. You can create one on iTunes Connect, similarly to what you did for issues.
- From the iTunes Connect page for your application, select Manage In App Purchases.
- Click the Create New button.
- Select Auto-Renewable Subscriptions.
- Fill in all the required form fields. For each subscription you create, take a note of the Product ID (which will be similar to
com.example.Baker.subscriptions.3months
): you will need to add them all to theAUTO_RENEWABLE_SUBSCRIPTION_PRODUCT_IDS
constant inConstants.h
.
- Create the
shelf.json
file following the instructions for Newsstand shelf JSON. - Remember to add the correct
product_id
from iTunes Connect. - Validate the
shelf.json
file with JSONLint to make sure it's correct. - Upload the
shelf.json
file to your web server (e.g. tohttp://example.com/baker/shelf.json
). Test that you can download it correctly.
Example shelf.json
file with a single issue. Notice the path of the hpub and the cover files:
[
{
"name": "a-study-in-scarlet",
"title": "A Study in Scarlet",
"info": "The original masterpiece by Sir A. Conan Doyle",
"date": "1887-10-21 22:50:36",
"cover": "http://example.com/a-study-in-scarlet/a-study-in-scarlet.png",
"url": "http://example.com/a-study-in-scarlet/a-study-in-scarlet.hpub",
"product_id": "com.example.Baker.issues.january2013"
}
]
To use auto-renewable subscriptions, you need to implement a server following the Baker Server API.
As described in the page, your server has to provide the endpoints for PURCHASE_CONFIRMATION_URL
and PURCHASES_URL
. To learn more about the Baker Framework's Open Source server backend, you can read more information on the Baker Framework Baker Cloud Console (CE) website.
There are also other Third-Party Server options available. You can read more about those here.
- Download and unzip the latest version from the website.
- Open
Baker.xcodeproj
in the latest version of Xcode. - Change the Bundle ID in Baker to your own Bundle ID (which you can find on iTunes Connect).
- Replace the icon files (ios-icon-*.png, check the Apple Guidelines for reference).
- Within Xcode, open the
settings.plist
file inside theBaker
folder, and: - Set
newsstandManifestUrl
to to the endpoint that returns the shelf JSON. - Set
purchaseConfirmationUrl
to the endpoint that accepts a purchase confirmation. - Set
purchasesUrl
to the endpoint that returns purchased issues and subscriptions. - Set
autoRenewableSubscriptionProductIds
to the iTunes Connect Product IDs of your subscriptions (e.g.com.example.Baker.subscriptions.3months
). - (optional) Set
postApnsTokenUrl
to the URL that will receive the APNS device token for the user (necessary for Push Notifications). - Note that you don't need to set
freeSubscriptionProductId
, as you don't need a free subscription when you have auto-renewable ones.
- Within Xcode, open file
settings.plist
inside theBaker
folder.
There you can set many details about the shelf look and feel.
Title color, info text color, button color, button text color, loading color and so on. - Within Xcode, open file
Baker/Supporting Files/en.lproj/Localizable.strings
.
There you can set the shelf title, button titles and messages related to downloading and archiving.
- Test your publication, subscriptions and downloads. To test purchases in the sandbox environment you will need to create an iTunes Connect test user. See the Apple documentation on Testing a Store. Remember that, before testing, you will need to sign out from your real Apple ID.
- If you have problems check the Problems and Debugging page or the In App Purchase FAQ.
- When you're ready, submit to the App Store.