With the DPS App Builder, you can create an .apk viewer app that you can submit to Google Play (previously Android Market) or Amazon Appstore. Follow the steps below to create the required files for your custom viewer app. The current version of the Viewer Builder is v2.9 (released December 2013).
☐ Application icons (36x36, 48x48, and 72x72 PNG)
☐ Splash images (1280x800 and 800x1280 or larger 8-bit PNG)
☐ Valid certificate
- You can create only multifolio viewer apps for Google Play. Single-folio apps are not available at this time.
- DPS does not support Google Play subscriptions at this time.
- You can use Google's in-app billing process to sell issues. If you offer retail issues through an enterprise subscription service, set up in-app billing for each retail folio. Otherwise, when your customers click a Buy button, they get an error message.
For information on Google Play app pricing, see Selling Your Apps in Google Play Help.
- You can create only multifolio viewer apps for the Amazon Appstore. Single-folio apps are not available at this time.
- The Amazon Appstore includes support for in-app purchases and subscriptions. Setup instructions are provided later in this document. For information on getting a subscription app in Kindle Fire Newsstand, contact Amazon.
DPS viewers are supported on all Amazon tablets. To support DPS viewers, Android tablets require the following:
- Android 2.3.3 API level 10 or later. Although DPS viewers can currently run on Android 2.2 (Froyo), it's no longer officially supported.
- ARMv7 processor with vector FPU, minimum 550 MHz, OpenGL ES 2.0, H.264, and AAC HW decoders Device software.
- 512 MB of RAM or higher.
- 7-inch screen or higher.
- Screen resolution: 1024 x 600 or higher.
At this time, DPS viewers do not support Android 4.4 (KitKat). v29 apps do not appear in the store on devices running 4.4; however v28 and earlier apps appear in the store but do not work properly.
Make sure that every person working on the publication uses the same version of the digital publishing tools throughout the process. For example, don't create and test folios using one version of tools, and then build using a newer version without thoroughly testing. Otherwise, content incompatibility issues can arise.
You cannot use the same Adobe ID to create multiple viewer apps. Create a different Adobe ID for each app. When signing in to publish folios, use the appropriate Adobe ID.
- Register as a Google Play developer or Amazon Appstore developer. It costs $25 to sign up for Google Play (previously called Android Market). Becoming an Amazon Appstore developer is free for the first year. Complete the sign-in process so that you become eligible to submit your apps to the Google Play Store or Amazon Appstore.
- Create a private key certificate. You can use the same certificate for both platforms.
- Create app icons and startup screens.
- Download Viewer Builder, and create the custom Android Viewer app (.apk file). Specify the appropriate marketplace when you create the app. If you're submitting an app to both Google and Amazon, create two different .apk apps, each with the appropriate Marketplace setting.
- Load .apk file onto mobile device.
- Create and upload .folio files, and download them to the mobile devices.
Create required files
To use the Viewer Builder to create a custom viewer app, create application icons, startup screens, and a cover.
Create 36x36, 48x48, and 72x72 pixel icons in PNG format.
When you submit the final app to the store, you are required to provide additional application icons. Consider creating a 512x512 icon, and then scaling that image down to create the necessary sizes.
Create a pair of startup screens for all Android devices. When the viewer is started, a startup screen appears for approximately 3 seconds. Provide two startup screen 72-ppi 8-bit PNG images with any pair of the following dimensions: 1280 x 800/800 x 1280, 1920 x 1200/1200 x 1920, 2048 x 1536/1536 x 2048, or 2560 x 1600/1600 x 2560.
All devices use the same horizontal or vertical startup screens you specify. The viewer scales the images up or down. And, if the device and images have different aspect ratios, crops the edges of the images to fill the screen.
Make sure that the startup screen image is different from the cover.
The Android and Amazon systems require that all installed applications are digitally signed with a p12 certificate whose private key is held by the application’s developer. Make sure that all applications are signed. The system can't install an application that is not signed. You can use self-signed certificates to sign your applications. No certificate authority is needed.
It's necessary that the certificate you create expires after October 22 2033.
Several methods for creating certificates are available, including Adobe Flash Professional and Adobe Flash Builder. If you don’t have any developer tools installed, you can use the Keytool utility to create a certificate. Keytool is a Java SDK utility that is already available on Mac OS computers. In Windows, it's necessary to install and configure Java SDK (also called JDK).
The following instructions tell you how to use Keytool to create a certificate. For detailed information, see Signing Your Application on the Android Developers site.
A certificate is created in your prompt location, such as your user name folder. Copy this certificate file to a known location. Write down the password as well.
Note: If a certificate file is not created, replace “-keystore myname.keystore” with a target path (such as -keystore c:\users\bob\bobcert.keystore) that you have access to.
Use DPS App Builder
Use DPS App Builder to create the custom Android Viewer app (.apk file). See Create a custom viewer for Amazon and Android devices.
Load the .apk file onto your Android device
Test the Android viewer app
For information on testing the viewer app on the Amazon Fire, see later in this article.
Unlike Apple and Amazon, Google does not require an approval process for submitting apps to Google Play. However, it's a good idea to test your custom viewer app (.apk) file before submitting it to Google.
Android Viewer limitations
- Panoramas are not supported.
- Inline videos are not supported.
- Video and audio clips in web views do not work.
- HTML content that works in mobile Safari doesn't always work in browsers of other mobile devices. Make sure that you test HTML web content overlays and HTML articles.
For a complete list of features supported in iOS but not Android, see Differences between iOS and Android viewers.
Submit your app to Google Play
For detailed information on publishing apps in Google Play, go here:
For best results, do not delete an app that you accidentally published. Unpublish it instead.
If your Android app includes retail content of any kind, make sure that you specify your public key (shared secret) using the Account Administration tool.
For information on Google Play Store app pricing, see Selling Your Apps in Google Play Help.
Set up in-app billing (Google Play)
You can use Google's In-app Billing service to sell individual folios within your viewer app. DPS does not support Google Play subscriptions at this time.
Make sure that you set up your billing before you make your content available to customers.
Even if you offer retail issues through a subscription service, set up in-app billing for each retail folio. Otherwise, when your customers click a Buy button, they get an error message.
Use the Google Play developer site to upload your custom viewer (.apk) app as described in the previous section. While submitting your app, click Save instead of publish if you don't yet want your app in the store before you set up your in-app billing.
Follow the steps in the Administering In-app Billing Help topic. As you go through these steps, note the following:
- Specify the exact same In-app Product ID when setting up Android in-app billing that you use when you publish the folio using the Adobe tools. The Product ID ties the folio to the in-app billing item.
- For Purchase Type, select "Managed," not "Unmanaged." Otherwise, your customers can't restore purchases.
- Adobe does not support the Android Refund feature at this time.
- Remember the information that you provide for "Public Key." Adobe needs this information to enable in-app billing.
Copy the Public Key into the Android field in the Shared Secrets as described in the DPS online Help topics Account Administration tool. Then sign in to the Folio Producer Organizer.
To locate your Public Key value, sign in at https://play.google.com/apps/publish. Click the Edit Profile link, and then copy the text in the Public Key field. Also specify this Public Key value in the Adobe Account Administrator tool that is available on the DPS Dashboard. Add this Public Key value to the "Shared Secret" area of the Application account.
Set up in-app purchases for Amazon Appstore
Amazon includes support for In-App Purchases: https://developer.amazon.com/sdk/in-app-purchasing.html
The Amazon Developer Portal provides an SDK and instructions for including in-app purchases in your app. However, this information is mostly irrelevant to DPS publishers because the Viewer Builder includes this information when it builds the app. Do the following actions on the Amazon site:
- Specify banking information so that Amazon can pay you when you sell content. On Amazon developer site, choose Settings > Payment Info.
- Set up entitlement IAPs for each retail folio. On the Amazon developer site, choose My Apps, and then choose In-app Items from the Actions menu next to the app you're preparing to submit. Choose Add In-App Item > Add Entitlement, and then specify the price of each folio you want to sell. (Use Add Entitlement, not Add Consumable.) Use a different IAP SKU for each retail folio. The SKU you specify for each retail folio is the Product ID you specify on the Adobe side when publishing the folio. Use a reverse DNS format such as "com.publisher.publication.issuedate" format. If you're selling this issue in other stores, such as the Apple Store, it's important that you use the same Product ID/SKU for each folio.
- If you're creating a subscription app. Set up a subscription IAP and terms (durations) for each subscription option. You create one parent SKU and individual child SKUs for each subscription duration. Again, use the reverse DNS format such as "com.publisher.publication.subscribe" for the parent and "com.publisher.publication.subscribe.annual." for each child. When you create the app in Viewer Builder, you specify one of the subscription SKUs you create.
- Obtain the shared key (also called the "public key" or "shared secret"). Then, copy and paste the shared key into appropriate field in the Account Administration tool. Obtain the public key from Amazon by choosing SDK > In-App Purchasing. Then, click the "Get your shared key to validate transactions outside your app" link. Copy it. Then sign in to the DPS Dashboard using your Application Adobe ID, open the Account Administration tool, and paste the shared key into the Amazon field.
Test and submit your app for Amazon Appstore
Amazon requires that the .apk file is wrapped before it can run properly on the Amazon Fire. If you sideload the .apk file to the Amazon Fire, any pre-v25 viewer app crashes when launched. (This crash occurs because the app is enabled for retail content and the app crashes when it cannot find the sandbox.) However, you can go to the Amazon Developer Portal and download a JSON file that lets you test your .apk file in a sandbox environment without crashing. Customizing this JSON file is also useful for testing retail purchases. See Testing Your App on the Amazon Developer site. Edit this JSON file and add it to the root directory of your device. See App crashes on Kindle Fire.
If you want your subscription app to appear in Kindle Fire Newsstand, note your request when you submit the app to Amazon. Amazon evaluates potential Newsstand apps on a case-by-case basis.
Amazon first evaluates your app for approval in the Appstore, and then it evaluates it for the Fire. Amazon notifies you when your app is approved in the Appstore, but doesn't necessarily notify when it's available for the Fire.
For information about publishing apps in the Amazon Appstore, go here:
Publishers can test direct (third-party) entitlement, but cannot verify In-App Purchasing using the Amazon sandbox at this time. This process cannot be tested end-to-end before releasing your app.
What to expect:
Once the .json file is configured and placed at the root level of the device, you can launch the application without crashing. And, you can see your folios in your library and initiate a purchase. The download fails and displays the following error message: "Error During Download - Could not verify this purchase." This error is expected.
Amazon's local sandbox client cannot communicate with their Receipt Verification Server. They have not communicated any plans to implement such a system.
Testing In-App Purchases on Kindle Fire requires Amazon's assistance.