Evan Kirchhoff
Senior Software Engineer
Ansca Mobile
iPhone Provisioning Portal setup and
App Store submission

iOS 4.0 De...
Today’s topics:
 Setting up the Provisioning Portal

Preparing your App Store submission

    The review/rejection process...
Mobile development
 before the iPhone
2006: Carriers ruled the world
Carriers controlled the
         interface




The app buying experience was poor...
App testing was complicated
            and expensive
In this example, the mandatory test fees were $800 per app per devic...
Other people got
       most of the money
Other People         You   Other People         You




25%
                    ...
Secretive, mysterious and
 sometimes frustrating
     ...but we love them anyway.
Using the iPhone
Provisioning Portal
It seems hard because it is
Log into your iPhone developer
    account and start here:
First-time setup




Do all steps in one session for best results

Work down the left-hand menu, and create at least
one o...
The first step is to
create one of these
Use Keychain Access
    (on your Mac)
to create a certificate
Use Keychain Access
    (on your Mac)
to create a certificate
Use Keychain Access
    (on your Mac)
to create a certificate
Save the Certificate
        Signing Request file




This is the file to upload to the Provisioning Portal
Upload the file here
and click “Submit”
Whenever you see
“Pending”, hit refresh
   in your browser
Now click the
                      “Download” button...

...then double-click the certificate file to
       install in y...
(The process is the same
for App Store Distribution
       certificates)
Now add test devices using their hardware Device IDs.
  You can register up to 100 devices per developer
                 ...
Use Xcode Organizer to get
      the Device ID




    Connect your device, then go to
     Xcode > Window > Organizer
Using a wildcard “*”
identifier is easiest at first...
...but you’ll need to generate app-specific IDs if
    you want to use Apple services like Push
 Notification, In-App Purc...
Provisioning Profiles:
         three types
1. Developer - for debugging
   (expires in 3 months)

2. Distribution (ad hoc...
What are Provisioning Profiles?
Provisioning Profiles bring everything together:




They associate certificates, AppIDs, ...
Provisioning Profiles bring everything together:
“Distribution” Profiles come in two flavors:




                            (we did this earlier)
“App Store” Distribution Profiles don’t allow
 device selection (and won’t run on devices)
Download the
  .mobileprovision files




Then double-click to install on your Mac
The files will end up here:




For best results, delete the ones you aren’t using!
Submitting to the
   App Store
  This part is easier
Be sure to use your App Store distribution profile




(If you build using Corona, you’ll won’t see this screen)
To submit your app




(Only available at sufficient account privileges!)
If there’s a name you really need,
         get it while you can!




      Note that the iPhone will only display names u...
What date to choose?




Your release won’t happen before this date,
   but may occur unpredictably after it!
Some people ...
Pick your price
Gather all this information before starting
              your submission

                                               ...
Your calculated content rating determines
    the parental filtering of your app
The last two are a trick question...




                                  Oops!
This large icon must look basically
the same as your app icon
(it’s safest to be exactly the same)


   You get up to 5 sc...
“Screenshots” don’t need to be literal
            screenshots!
Now you are
ready to upload
the app itself...
Download
“Application
  Loader”
Now click here
You will most likely answer
       “No” to this!
You must run Application
Loader to upload your app




    But it is actually helpful!
You must run Application
Loader to upload your app




                   Zip your final
                  app file before...
If using Xcode, the release build file can be found in
        [Project folder] > build > Release-iphoneos

   (If using C...
Application Loader finds
  common build problems




This saves a lot of time, compared to the
 App Store rejections that ...
After the upload
                       “Waiting for Review”
(USUALLY A FEW BUSINESS DAYS)


                             ...
What happens during review?
Automated scanning for private Apple APIs

Some kind of human judgement regarding
      “inapp...
What if they reject your app?
   Usually they’ll give you a reason:
But some rejections are
              unpredictable!




http://www.theregister.co.uk/2010/06/01/apple_boots_widgety_apps_...
Congratulations, you’re
  in the App Store!
       Now what?
You have 5 friends with
    iPhones: call them now!




You really want to get out of “No Ratings” status
   quickly, but ...
Try to get reviews from your
      happy customers
Ratings totals are a rough
     proxy for sales totals




...and the multiplier may be around 100x (!)
Obviously a very r...
Use your app to cross-promote
       your other apps




This button links to an App Store search by company name
Use Facebook, Twitter or social
      gaming networks




 (e.g., OpenFeint, or Apple’s Game Center)
Some kind of promotional website is a good idea...




 Canabalt features the fully playable game on its website for free,...
App review websites



                                      ?
   Without naming names, there may be a
    “pay to play” a...
You could also try advertising




                       !
  The apps market is still so young that
 virtually no real ad...
Use these
to give free
apps to
friends or
reviewers.

You can get
50 codes
per app
version.
Promo codes are redeemed in iTunes:




They expire quickly - don’t generate too many at once!
With 225,000 apps, isn’t the
        App Store “full”?




               Was the web “full” in 1994?
(Note 1994 Yahoo int...
App Submission case studies
 (all information anecdotal)

         ABC Animals

          Pad Racers

        420 Reminder
What does Ansca Mobile offer developers?
Corona SDK
December 2009
                Corona Game Edition
                     July 2010
What is Corona?

OpenGL accelerated graphics engine
Develop mobile apps using a small
scripting language (Lua) rather than...
The Lua language




www.lua.org
What is Game Edition?

Physics engine included (Box2D)

Animated sprites & “sprite sheets”

Social gaming features
Corona SDK                         +   Corona Game Edition
                                                   all previous...
What can you make?




(These are not Corona,
but represent the target
market for Game Edition)
What can you make?




(Made in Corona Game Edition and shipped to the
            iPad App Store recently)
How does Corona work?
         Native Engine:
         C, C++, Objective-C,
         OpenGL

          Exposed Scripting:
...
Now is the time where we
   show tech demos
iTunes App Store Submission Process
iTunes App Store Submission Process
iTunes App Store Submission Process
Upcoming SlideShare
Loading in...5
×

iTunes App Store Submission Process

14,801

Published on

Published in: Technology
3 Comments
27 Likes
Statistics
Notes
  • The following link provides visually very clear steps for submitting a first iOS app to app store.
    http://code-ios.blogspot.in/2014/04/steps-to-submit-ios-app-to-app-store_24.html
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Great Work!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • I'm a big fan of iPhone. I really like iTunes app. I also like apps of CardFila.com so much. So useful. I can organize effectively & grow business network without error even if storing more 2000 biz cards. So great for business-man
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
14,801
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
3
Likes
27
Embeds 0
No embeds

No notes for slide

iTunes App Store Submission Process

  1. 1. Evan Kirchhoff Senior Software Engineer Ansca Mobile iPhone Provisioning Portal setup and App Store submission iOS 4.0 Development Training Camp Hacker Dojo, Mountain View, California August 7, 2010
  2. 2. Today’s topics: Setting up the Provisioning Portal Preparing your App Store submission The review/rejection process Increasing your app sales Some cool tech demos with Corona
  3. 3. Mobile development before the iPhone
  4. 4. 2006: Carriers ruled the world
  5. 5. Carriers controlled the interface The app buying experience was poor...
  6. 6. App testing was complicated and expensive In this example, the mandatory test fees were $800 per app per device model; test failure over trivial technicalities was very common
  7. 7. Other people got most of the money Other People You Other People You 25% 30% 70% 75% Then Now
  8. 8. Secretive, mysterious and sometimes frustrating ...but we love them anyway.
  9. 9. Using the iPhone Provisioning Portal It seems hard because it is
  10. 10. Log into your iPhone developer account and start here:
  11. 11. First-time setup Do all steps in one session for best results Work down the left-hand menu, and create at least one of everything
  12. 12. The first step is to create one of these
  13. 13. Use Keychain Access (on your Mac) to create a certificate
  14. 14. Use Keychain Access (on your Mac) to create a certificate
  15. 15. Use Keychain Access (on your Mac) to create a certificate
  16. 16. Save the Certificate Signing Request file This is the file to upload to the Provisioning Portal
  17. 17. Upload the file here and click “Submit”
  18. 18. Whenever you see “Pending”, hit refresh in your browser
  19. 19. Now click the “Download” button... ...then double-click the certificate file to install in your Mac keychain
  20. 20. (The process is the same for App Store Distribution certificates)
  21. 21. Now add test devices using their hardware Device IDs. You can register up to 100 devices per developer account (per year)
  22. 22. Use Xcode Organizer to get the Device ID Connect your device, then go to Xcode > Window > Organizer
  23. 23. Using a wildcard “*” identifier is easiest at first...
  24. 24. ...but you’ll need to generate app-specific IDs if you want to use Apple services like Push Notification, In-App Purchase or Game Center
  25. 25. Provisioning Profiles: three types 1. Developer - for debugging (expires in 3 months) 2. Distribution (ad hoc) - for beta testers, using one of your 100 devices (expires in 1 year) 3. Distribution (App Store) - for shipping your final app to the store
  26. 26. What are Provisioning Profiles? Provisioning Profiles bring everything together: They associate certificates, AppIDs, and devices (They must also be installed on the test devices; either Xcode Organizer or iTunes can be used for this)
  27. 27. Provisioning Profiles bring everything together:
  28. 28. “Distribution” Profiles come in two flavors: (we did this earlier)
  29. 29. “App Store” Distribution Profiles don’t allow device selection (and won’t run on devices)
  30. 30. Download the .mobileprovision files Then double-click to install on your Mac
  31. 31. The files will end up here: For best results, delete the ones you aren’t using!
  32. 32. Submitting to the App Store This part is easier
  33. 33. Be sure to use your App Store distribution profile (If you build using Corona, you’ll won’t see this screen)
  34. 34. To submit your app (Only available at sufficient account privileges!)
  35. 35. If there’s a name you really need, get it while you can! Note that the iPhone will only display names up to 12 characters without shortening them with “...” (It’s possible to use a long name in the store, and set a shorter display name in Info.plist)
  36. 36. What date to choose? Your release won’t happen before this date, but may occur unpredictably after it! Some people change this date each night to tomorrow’s date, during their review period, to try and optimize their initial placement on the App Store’s recent-releases lists
  37. 37. Pick your price
  38. 38. Gather all this information before starting your submission Description field no longer indexed for iTunes app searches (due to rampant keyword-stuffing in this field) 100-character maximum (eliminate spaces to make room for more keywords) “Copyright” field can be whatever you want to show in the store as the author/company App Store reviewers will want to inspect all parts of your app, so include test passwords if necessary
  39. 39. Your calculated content rating determines the parental filtering of your app
  40. 40. The last two are a trick question... Oops!
  41. 41. This large icon must look basically the same as your app icon (it’s safest to be exactly the same) You get up to 5 screenshots - use them all! Use PNG files for best results
  42. 42. “Screenshots” don’t need to be literal screenshots!
  43. 43. Now you are ready to upload the app itself...
  44. 44. Download “Application Loader”
  45. 45. Now click here
  46. 46. You will most likely answer “No” to this!
  47. 47. You must run Application Loader to upload your app But it is actually helpful!
  48. 48. You must run Application Loader to upload your app Zip your final app file before uploading
  49. 49. If using Xcode, the release build file can be found in [Project folder] > build > Release-iphoneos (If using Corona, simply click the “Show in Finder” button after building) Right-click this .app file and choose “Compress” to zip it
  50. 50. Application Loader finds common build problems This saves a lot of time, compared to the App Store rejections that would have happened otherwise!
  51. 51. After the upload “Waiting for Review” (USUALLY A FEW BUSINESS DAYS) “In Review” (ANOTHER 3-5 BUSINESS DAYS) “Requiring “Ready for Sale!” unexpected additional (CONGRATULATIONS!) Your app will appear on the time for review” store within an hour or so. (OH NO - THE DREADED APP LIMBO) Some apps get stuck here for weeks or months...experiences vary widely
  52. 52. What happens during review? Automated scanning for private Apple APIs Some kind of human judgement regarding “inappropriate” app content A little bit of intellectual property monitoring (seems hit or miss) Actual human testing of the app (seems to be about 5 minutes on average, mostly checking for crashes, major style violations, or obvious behavior problems)
  53. 53. What if they reject your app? Usually they’ll give you a reason:
  54. 54. But some rejections are unpredictable! http://www.theregister.co.uk/2010/06/01/apple_boots_widgety_apps_from_app_store/
  55. 55. Congratulations, you’re in the App Store! Now what?
  56. 56. You have 5 friends with iPhones: call them now! You really want to get out of “No Ratings” status quickly, but that requires at least 5 ratings (no written reviews needed, just the ratings!)
  57. 57. Try to get reviews from your happy customers
  58. 58. Ratings totals are a rough proxy for sales totals ...and the multiplier may be around 100x (!) Obviously a very rough estimate, but seems correct to within an order of magnitude
  59. 59. Use your app to cross-promote your other apps This button links to an App Store search by company name
  60. 60. Use Facebook, Twitter or social gaming networks (e.g., OpenFeint, or Apple’s Game Center)
  61. 61. Some kind of promotional website is a good idea... Canabalt features the fully playable game on its website for free, yet sold very well on iPhone at $2.99! (Also note that you can use iTunes affiliate links to get a 5% revenue bonus)
  62. 62. App review websites ? Without naming names, there may be a “pay to play” aspect in some cases Some developers boycott paid review sites; it’s your choice* *Personal view: “All’s fair in love, war, and search engine optimization”
  63. 63. You could also try advertising ! The apps market is still so young that virtually no real advertising takes place! (This will presumably change as app budgets increase)
  64. 64. Use these to give free apps to friends or reviewers. You can get 50 codes per app version.
  65. 65. Promo codes are redeemed in iTunes: They expire quickly - don’t generate too many at once!
  66. 66. With 225,000 apps, isn’t the App Store “full”? Was the web “full” in 1994? (Note 1994 Yahoo interface very similar to today’s App Store!)
  67. 67. App Submission case studies (all information anecdotal) ABC Animals Pad Racers 420 Reminder
  68. 68. What does Ansca Mobile offer developers?
  69. 69. Corona SDK December 2009 Corona Game Edition July 2010
  70. 70. What is Corona? OpenGL accelerated graphics engine Develop mobile apps using a small scripting language (Lua) rather than C++, Objective-C or Java Cross-platform development: iPhone, iPad, Android from the same source
  71. 71. The Lua language www.lua.org
  72. 72. What is Game Edition? Physics engine included (Box2D) Animated sprites & “sprite sheets” Social gaming features
  73. 73. Corona SDK + Corona Game Edition all previous features, plus: * Full Lua scripting language * Hardware-accelerated graphics * Improved texture memory handling * GPS, compass, accelerometer * Animated sprites with independent * Networking (TCP, FTP, HTTP, etc.) framerates per sprite sequence * Camera and photo library * 2D physics simulation * Video playback (streaming or local) * Simple and complex physical bodies * Audio (sound effects or MP3) * Physical properties (mass, friction, * Animation and transition libraries bounce) * Vector drawing APIs (shapes and lines) * Joints, wheels, hinges, pulleys, etc. * Native UI (keyboard, etc.) * Collision detection, including pre- and * WebKit browser views post-collision events * SQLite database * OpenFeint game network support * File read/write * (more social features TBA) * Crypto (md4, md5, sha1, sha512, etc.) * Facebook and Twitter libraries
  74. 74. What can you make? (These are not Corona, but represent the target market for Game Edition)
  75. 75. What can you make? (Made in Corona Game Edition and shipped to the iPad App Store recently)
  76. 76. How does Corona work? Native Engine: C, C++, Objective-C, OpenGL Exposed Scripting: Lua Lua is designed as an embedded language (Very small, very fast, runs alongside native code)
  77. 77. Now is the time where we show tech demos

×