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 NAME.zip" exactly as they appear on the App Store.
    • For example: "Acme Inc - Touch Fighter.zip".
  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 ***@apple.com. 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.

Comments

Most Favorite Posts

Dark Theme (Dark Mode) in Android WebViews, WKWebViews and CSS

So your apps just implemented a shiny new dark theme and it’s looking 👌 There are lots of benefits to having a dark theme in your application, and having it consistent throughout your application allows for a great user experience. But what happens when the the user runs into a WebView in your app? Support: if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { ... } Set: WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON) Current setting: val forceDarkMode = WebSettingsCompat.getForceDark(webView.settings) Joe Birch Assuming your question is asking how to change the colors of the HTML content you are displaying in a WKWebView based on whether light or dark mode is in effect, there is nothing you do in your app's code. All changes need to be in the CSS being used by your HTML content. CSS dark mode via :root variables, explicit colors and @media query: :root {     color-scheme: light dark;      ...

Server-driven UI (SDUI): Meet Zalandos AppCraft and AirBnB Lona

A short WTF: Joe Birch:  SERVER DRIVEN UI, PART 1: THE CONCEPT Zalando seems to follow the SDUI principle as well - defining a common design language and construct the screens on the backend while displaying them natively on the clients. They even go one step further; they implemented a mighty toolset to enable non-technical stakeholders to define their own native app screens Compass: Web tooling to create screens and bind data Beetroot: Backend service that combines the screen layout definition with the data Lapis/Golem: iOS/Android UI render engines Crazy cool! Good job, guys (when you do an open-source release?) To even move faster a Flutter based UI render engine implementation was great! See also AirBnB Lona SDUI approach Building a Visual Language Why Dropbox sunsetted its universal C++ mobile project and AirBnB its React Native implementation

Sencha Animator

Rich CSS3 ads for every mobile platform. Captivate your audience. Engage your customers. Standards-based animation has never been so easy. With the power of Sencha Animator, use CSS3 animations to build the next generation rich-media ads. Animate text and images with smooth transitions, design buttons with gradients, and embed analytics. All backed by the strength of web standards. Whether it’s zooming through space, challenging foes to kung fu, or showing off your latest line of amazing products, Sencha Animator elevates your creative experience and deploys on all of today’s most popular devices. Complete output control. Animator’s output is clean and human readable. Designers unfamiliar with web programming can leverage CSS3, while advanced users have complete control over the output. Better design experience. Superior results. Animator gives artists the freedom to design and fully deliver on innovative ideas, generate better customer engagement, and drive higher client RO...

UIDeviceOrientation vs. UIInterfaceOrientation

We stumbled upon a bug in one of our apps: - rotate the Homescreen to Landscape - go to some other screen - put the device on the table and go back - the homescreen is all messed up This behavior was similar with some other View controllers. The problem was in the viewDidAppear where the Interface should be rotated to Layout or Portrait- the UIDevice Orientation was used ( [UIDevice currentDevice].orientation ) an when you put the device on the Table the orientation of the Device is always "UIDeviceOrientationFaceUp". The Problem is that the Device Orientation could be FaceUp in Portrait AND Landscape mode so for this use-case this doesn't give you the proper information. instead determining the orientation by: UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation) you should do this (at least in View controllers) and use the interfaceOrientation property: UIInterfaceOrientationIsLandscape(self.interfaceOrientation)

How to link to TestFlight App in iOS

There are two things you need to do. First, check to see if TestFlight is installed. Then create a new link to your app. NSURL *customAppURL = [NSURL URLWithString:@"itms-beta://"]; if ([[UIApplication sharedApplication] canOpenURL:customAppURL]) {     // TestFlight is installed     // Special link that includes the app's Apple ID     customAppURL = [NSURL URLWithString:@"https://beta.itunes.apple.com/v1/app/978489855"];      [[UIApplication sharedApplication] openURL:customAppURL]; } This special https://beta.itunes.apple.com URL will be opened directly in TestFlight. Finally, if you are using iOS 9 (or later), you need to make an addition to your Info.plist to get the canOpenURL: method to work. If your app is linked on or after iOS 9.0, you must declare the URL schemes you want to pass to this method. Do this by using the LSApplicationQueriesSchemes array in your Xcode project’s Info.plist file. For each URL scheme you wan...

Judo App - Server Driven UI out of the box

Judo App Judo brings server-driven UI to your iOS and Android apps. Build user interfaces visually in a fraction of time and publish them instantly without submitting to the app store. Build Experiences - With No Code The Judo app for macOS, available through the App Store, is built for design professionals with common keyboard shortcuts and familiar concepts like canvas, layers and inspector panel. Workflow is streamlined with the ability to drag and drop media files directly into your experiences and manage your own Judo files in Finder. Manage Creative Execution A Judo experience is interactive and can include text, images, video and buttons. An experience may be part of a screen, a single screen, or more typically multiple linked screens. Judo supports screen transitions, carousels, horizontal scrolling and modals. Clients can add custom fonts and define global colors and these are updates applied universally. Effortlessly Deploy Judo Cloud syncs your experiences with your iOS and ...