Skip to main content

Apples Instructions for Submitting your iPhone/iPod touch Demo Application

  1. Demo versions of your shipping application cannot have any type of log-in, account, password, ability to save a player's name, etc.
    Please note: This is a VERY important requirement.
    • If your shipping application requires users to log-in to an account, please create a demo app that upon launch is already logged-in to an account that contains demo data.
    • If you use demo data, make sure that it is fully licensed for your use. (For example, don't use the names of characters from the latest hit movie.)
    • Make sure to disable logins to all third-party accounts, including Facebook, Twitter, etc. For games, remember to disable the login to the online "leader board."

  2. For features that you are disabling for the demo, please include a popup alert that states, "Feature not enabled for this demo."
    Please localize this message for all of the languages the app supports.
    • For example, if your shipping app enables users to purchase additional game levels, the demo should let the user to get to the point of purchasing and then see a popup alert that states "Feature not enabled for this demo"
  3. If the full version of your application is available on the App Store as a Free App, please go to step 5.
  4. If your app is listed on the App Store as a Paid App, please complete these additional steps:

    • Create a version of your application for demonstration purposes.
    • Include a splash screen that indicates this is a demo version of your full product and use the following text: "This version of  has been created specifically for demonstration purposes."
      • Please localize this message for all of the languages in your demo.
    • Ensure the icon for this demo version is identical to that used in the shipping paid App.
    • Name this application exactly as it currently appears on the App Store 
    • When your demo app is installed on an iPhone or iPod touch, it must look exactly as if a customer were to download your paid app from the App Store, with the same exact name and icon.
  5. Make sure that your demo app provides the same localization as your currently shipping app.
  6. Build your demo app and verify that it successfully installs on your development device.
  7. Make sure that your demo app, when installed, looks exactly like your shipping application: the same icon with the same app title under the icon.
    • REMEMBER: This version of your app must have been thoroughly tested on a device running iOS 4.3.3.
  8. Build a Distribution version of your demo app and sign it using your distribution certificate. Send the binary built in .ipa format.
  9. Make sure that the demo app you send us has the exact same name as the official name of your app on the App Store.
  10. Send the files compressed in .zip format in the naming format: "DEVELOPER NAME - APP" exactly as they appear on the App Store.
    • For example: "Acme Inc - Touch".
  11. Make sure that the subject of your email contains the exact same name as the official name of your app on the App Store.
  12. Email the zipped demo app to *** If the zipped demo app is too large to email, please provide an ftp server location with login information for us to download your demo app.


Popular posts from this blog

Pattern: Riblets vs. VIPER

Engineering the architecture behind Uber's new rider app

Not being held back by our extensive codebase and previous design choices gave us the freedom where we otherwise would have made compromises. The outcome is the sleek new app you see today, which implements a new mobile architecture across both iOS and Android. Read on to learn why we felt the need to create this new architecture pattern, called Riblets, and how it helps us reach our goals.

The platforms share:

Core architectureClass namesInheritance relationships between business logic unitsHow business logic is dividedPlugin points (names, existence, structure, etc.)Reactive programming chainsUnified platform components
Each Riblet is made up of one Router, Interactor, and Builder with its Component (hence the name), and optional Presenters and Views. The Router and Interactor handle the business logic, while the Presenter and View handle the view logic.


Stetho - A Chrome debug bridge for Android applications

Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature natively part of the Chrome desktop browser. Developers can also choose to enable the optional dumpapp tool which offers a powerful command-line interface to application internals.

Facebook Github


WireMock is a flexible library for stubbing and mocking web services. Unlike general purpose mocking tools it works by creating an actual HTTP server that your code under test can connect to as it would a real web service.

It supports HTTP response stubbing, request verification, proxy/intercept, record/playback of stubs and fault injection, and can be used from within a unit test or deployed into a test environment.

Although it’s written in Java, there’s also a JSON API so you can use it with pretty much any language out there.