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

Using Speech with iOS and Android: SiriKit, Voice Capabilities, Google Assistant

SiriKit SiriKit enables your iOS apps and watchOS apps to work with Siri, so users can get things done using just their voice. Your content and services can be used in new scenarios including access from the lock screen and hands-free use. Apps adopt SiriKit by building an extension that communicates with Siri, even when your app isn’t running. The extension registers with specific domains and intents that it can handle. For example, a messaging app would likely register to support the Messages domain, and the intent to send a message. Siri handles all of the user interaction, including the voice and natural language recognition, and works with your extension to get information and handle user requests. Apple Developer Adding Voice Capabilites Voice actions are an important part of the wearable experience. They let users carry out actions hands-free and quickly. Wear provides two types of voice actions: System-provided These voice actions are task-based and are built into ...

Titanium: Releasing Memory

- It’s true that you can’t manually manage your application objects’ reference count in iOS applications. There are, however, things you can do to free up memory – the big ones in the 1.x product are closing windows (which releases all UI resources associated with the window) and setting references to a proxy object (like one returned by Ti.UI.createXXX) to null, which will release the resources associated with that object. Why you should stay away from Titanium

CFPropertyList

The PHP implementation of Apple's PropertyList plist can handle XML PropertyLists as well as binary PropertyLists. It offers functionality to easily convert data between worlds, e.g. recalculating timestamps from unix epoch to apple epoch and vice versa. A feature to automagically create (guess) the plist structure from a normal PHP data structure will help you dump your data to plist in no time. github

Leveraging your iPhone development expertise to build Windows Phone 7 applications

Assuming you are a happy coder, the joy of developing software all comes down to a few things: Building something cool that users will enjoy Getting rewards from users and recognition from peers Learning how to solve new challenges and build novel features. Even if you have a solid expertise on a particular platform/language, I think it is essential to be a “polyglot” developer. In other words, you might have a native or preferred language, but opening your mind to others can be very stimulating and will bring considerable value to your abilities and your resume. Jumping from one platform or language to another can introduce breaking changes in your habits, but ultimately change is very stimulating and will expand your opportunities. If you are a .NET developer, learning Windows Phone development is not really “change.” Instead, it is more of a continuum, where you just add new features to what you already know. If you are an iPhone developer, new to Windows Phone (and .NET), ...

App Store Optimization (ASO) Factors and Trends 2020... and earlier

New in ASO: Keyword Spy, Keyword Lists, and Search Visibility Level-up your strategy with these new ASO enhancements in our mobile marketing suite: Keyword Spy, Keyword Lists, and Search Visibility. AppAnnie The ASO Factors & Trends for 2018 study is based on survey data from over 60 ASO and app marketing professionals who were asked to evaluate the effect of different on-metadata and off-metadata factors on Search Rankings and Conversion Rate of mobile apps and games. The TOP 5 factors responsible for ASO on Google Play Store and Apple App Store (on both Search and Conversion Rate level) are nearly identical: App Name / Title Localized product page User Ratings Subtitle / Short Description User reviews TheTool Another nice blog about ASO: Important Tips on Writing An App Description The Apple App Store Optimization Guide 5 Tips on How to Increase App Downloads Keywords Optimization ... MobileAction

Speed up your unit tests! Swap out your App Delegate for testing.

Faster, please One thing that can slow our tests down is if our App performs expensive tasks on startup and it is not unusual to place code that synchronizes with a server in our implementation of UIAppDelegate. Luckily for us there is a way to change the production App Delegate with a fake that does nothing. Objective-C class FakeAppDelegate: UIResponder, UIApplicationDelegate {   var window: UIWindow?   func application(application: UIApplication,     didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {     self.window?.rootViewController = UIViewController()     return true   } } let isRunningTests = NSClassFromString("XCTestCase") != nil if isRunningTests {   UIApplicationMain(Process.argc, Process.unsafeArgv, nil,     NSStringFromClass(FakeAppDelegate)) } else {   UIApplicationMain(Process.argc, Process.unsafeArgv, nil,     NSStringFromClass(AppDelegate)) ...