Distributing iOS Applications Through the App Store

Distributing iOS Applications Through the App Store

with Bill Weinman

 


Distributing iOS Applications Through the App Store covers preparing an application for, and submitting it to, the Apple App Store for iOS apps. The course shows how to prepare the assets, generate the necessary certificates and provisioning profiles, create the bundle, submit the app to the app store, and comply with Apple's requirements for marketing materials. It also sheds light on the Apple submission process and offers tips for meeting the review guidelines and increasing the odds of acceptance. Exercise files accompany the course.
Topics include:
  • Understanding the human interface guidelines for iOS
  • Generating certificates
  • Understanding provisioning profiles
  • Signing the app and its installer
  • Setting up the Info.plist file
  • Registering an application in iTunes Connect
  • Submitting with Xcode or the Application Loader
  • Checking the status of an application
  • Following the Apple marketing guidelines
  • Using Apple Product images

show more

author
Bill Weinman
subject
Developer, Mobile Apps
software
iOS 3, Xcode 4
level
Intermediate
duration
1h 43m
released
Feb 18, 2011

Share this course

Ready to join? subscribe


Keep up with news, tips, and latest courses.

submit Course details submit clicked more info

Please wait...

Search the closed captioning text for this course by entering the keyword you’d like to search, or browse the closed captioning text by selecting the chapter name below and choosing the video title you’d like to review.



Introduction
Welcome
00:05Hi I'm Bill Weinman and I'd like to welcome you to Distributing iOS Applications
00:09Through the App Store.
00:11In this course I'll show you how to prepare, submit, and distribute your iOS app
00:16through Apple's App Store.
00:17I'll cover the various assets your app needs like icons for the various iOS
00:21platforms, a launch image to display when your app starts up, and
00:25screenshots for your apps page.
00:28I'll show you how to prepare your application bundle and how to submit your app
00:32to the store using Apple's iTunes Connect portal.
00:35Finally, I'll take you through Apple's marketing guidelines and show you some of
00:39the tools they provide to help you promote your app.
00:42App Store presence is essential in distributing your iOS application to
00:45the market.
00:46So let's get started Distributing iOS Applications Through the App Store.
Collapse this transcript
Using the exercise files
00:00If you have access to the Exercise Files for this course you may use them to
00:04follow along with me as I go through this tutorial.
00:08Feel free to put the Exercise Files on the Desktop as I have or use them
00:12somewhere else if you prefer.
00:13Do keep this important point in mind though you should not submit this demo
00:18app to the App Store.
00:20The application that I created for the examples in this course is specifically
00:24designed to be rejected, should it be submitted to the App Store.
00:28Please do not use it.
00:30The Exercise Files are separated into four chapters and within those chapters
00:34there are number of different assets.
00:38Many of these folders contain an Xcode project that's the demo app that I'll be
00:42using for the exercises.
00:45When we use this demo app for the exercises I suggest you make a working copy of it.
00:50I am holding down the Option key as I drag this folder
00:55and then rename it to something like working
01:00and use the project in that working folder.
01:03If you do not have access to the Exercise Files that's really okay.
01:08It's really better if you use your own app and your own assets to follow along
01:12with the exercises in this course.
Collapse this transcript
Course overview
00:00So you have an amazing iOS application and you want to submit it to the App Store.
00:04Well, you've come to the right place.
00:06The goal of this course is to show you how to submit an iOS app to the App Store.
00:11The process can be confusing.
00:13So I'll do my best to demystify it for you.
00:16First, you must have a modern Intel Mac.
00:18iOS development requires an Intel Mac and the very latest versions of Xcode
00:22require the very latest versions of Mac OS X, which only runs on an Intel Mac.
00:29You'll need an app to submit.
00:31For demonstration purposes I provided a demo app in the Exercise Files for this course.
00:36It's probably best if you use your own app, even to follow along with the
00:40exercises in this course, but I provided this app in case you need it just for
00:44your learning purposes.
00:46This was designed to be the simplest possible app for the purposes of
00:49demonstrating the process, the app itself does nothing at all and it has
00:53the word demo in its title, and either of those facts alone would get it
00:57rejected from the App Store and that was really part of the intention of
01:00designing it that way.
01:02So when you get to the point where you're ready to submit your app, you don't
01:05want to accidentally submit this demo app instead.
01:08You'll also need some graphical elements.
01:10So you'll either need the skills and tools to make those elements or have
01:14someone available to create them for you.
01:15We'll cover the requirements.
01:18The App Store review guidelines tend to be a source of controversy
01:22and misunderstanding.
01:23Whatever you think of them, you'll need to become familiar with them and
01:26abide by their rules.
01:28We'll cover the review guidelines in some detail.
01:31We'll cover the contents of the application bundle and you'll see how it gets
01:34created, and once you have all the pieces assembled you want to submit your
01:38app to the App Store.
01:40I'll show you how to do that and how to do it successfully.
01:43Once your app is in the App Store, you want to promote it.
01:46I will cover the rules for doing this and how you can use Apple provided
01:49marketing assets to help get the word out about your app.
01:53The purpose of this course is to provide you with the information and
01:55knowledge you need to submit your apps successfully so that you get it into
01:59the App Store quickly and easily.
Collapse this transcript
1. Meeting the Requirements
Meeting the review guidelines
00:00If you read the online blogs and magazine articles about the App Store review
00:04guidelines, you'll get the impression that they are arbitrary, oppressive,
00:08and otherwise evil.
00:10Those characterizations are fun to read, but they're not going to help your app approved.
00:14Whatever else the App Store guidelines are they're necessary for you to
00:18understand and comply with if you want to ensure a smooth approval process for your app.
00:24You can see the complete guidelines on Apple's Developer web site.
00:28You must login with your membership to see this document.
00:32From Apple's perspective the quality of the user experience is what separates
00:36them from their competition.
00:38This is why people buy Apple's products instead of shopping for the least
00:42expensive product in a particular category.
00:45So it's useful to look at these guidelines from this perspective. How does this
00:49guideline affect the user experience?
00:52This approach should help you understand the guidelines and ultimately to have
00:55your App approved more easily.
00:57In essence you're app must do something useful.
01:00It must work well and be relatively free of bugs and crashes.
01:04It must meet Apple's Mobile Human Interface Guidelines and work as a user
01:09would expect an iOS App to work and it must have no content that may be
01:13considered offensive.
01:15This is really the gist of the document and if you get this the details
01:18won't surprise you.
01:20The document has 22 sections, but we can really break it down into just a few.
01:24First your app must do something.
01:27It cannot be just a brochure.
01:29It cannot be just a picture or a page of information.
01:32It has to actually have some function.
01:34Your app must not crash.
01:36This is a basic requirement.
01:38Xcode has a number of tools available to help with this.
01:41So at minimum use the Build and Analyze function and the Leaks Instrument to
01:46make sure that your app is not leaking.
01:48Your app should be relatively bug-free.
01:50So test it thoroughly and on as many devices as you can.
01:54The more complex it is, the more things it does, the more options it has, the
01:58more time and resources you'll need to spend testing it.
02:02The App Store will summarily reject any app that uses any of the following words
02:06in its name or in its descriptions: beta, demo, trial, or test.
02:12Now note that for example purposes I've named our example app with the word demo
02:17in it so that if it submitted it's guaranteed to be rejected.
02:21So don't submit that app.
02:24Your app cannot be just a mockup or an advertisement.
02:28It cannot have hidden undocumented or otherwise surprising features.
02:32Now if you want to use Easter eggs you can as long as you let the review board
02:35know about them and I'll show you how to do that during the submission process.
02:39And you're not allowed to use any undocumented or nonpublic APIs.
02:44If you think that's unfair that Apple can use API calls that aren't available to
02:49the public for their own apps, you're right it's not fair.
02:52You'll also get your app rejected.
02:54So just don't do that.
02:58Your app must comply with Apple's Mobile Human Interface Guidelines.
03:02This is a part of the review guidelines so it's not optional at all.
03:06Apps that look similar to apps bundled with iOS or with any of Apple's
03:10devices will be rejected.
03:12Use the system provided interface elements and don't change their behaviors.
03:17Apps that depict realistic violence or abuse will be rejected, enemies in a game
03:22may not be all one race or one ethnic group.
03:25Apps that are designed to discuss or upset users will be rejected and
03:30pornographic apps will be rejected, even if its user generated.
03:34In the App Store Guidelines Apple uses the example of Chatroulette as the kind
03:39of an app that would be rejected.
03:41Use the in-app purchases API for any additional purchases that your app needs.
03:47Your app cannot create a self-contained store for purchasing additional content.
03:52In other words, you can't just make an end-run around Apple to sell more product.
03:56Rental content that expires after a time is not allowed and apps that enable
04:01features for a fee by any means other than the App Store will be rejected.
04:07All apps must comply with all local laws.
04:10Your app cannot solicit or encourage illegal behavior and gambling apps that use
04:15real money are not allowed.
04:17Understanding these guidelines is crucial for success in the App Store.
04:21Yes, in some contexts some of them seem unfair, but they create a common
04:25denominator that allows Apple to make your app available to a vast number of iOS
04:30device owners, with just a few taps on the screen.
Collapse this transcript
Touring the Xcode 4 interface
00:00Soon after this course was recorded, Apple released Xcode 4 about six months
00:05before we expected them to.
00:08Xcode 4 has a completely redesigned user interface.
00:11So if you're using Xcode 4 with this course your screens will look significantly
00:15different than my screens do in the movies.
00:18Keep in mind that Xcode 4 does all the same things that Xcode 3 does.
00:22It just looks different and some of its components have been moved around.
00:26Until we get a chance to update the course we've added a couple of movies to
00:30help you find your way around the examples with Xcode 4.
00:34This movie is a tour of the new user interface in Xcode 4.
00:38Many things are moved around so you'll want to take some time to become familiar
00:42with the new interface.
00:44The most obvious difference between Xcode 4 and previous versions of Xcode is
00:48the new single window interface.
00:51So the first thing you'll want to know is, where did they put everything?
00:54So I've made a working copy of the Mac demo project from the exercise files.
01:00You can use any project that you have and frankly, I recommend that you use
01:03one of your projects.
01:05This course is not about the code.
01:06It's about the IDE and you want to get familiar with it with your own code.
01:11So if you don't have the exercise files don't worry about it and if you do have
01:15the exercise files and you've got some of your own code you could be using for
01:18this, do go ahead and use your own code instead.
01:22You'll also notice that I've set up the screen here with all of the various
01:25components of the screen showing.
01:27If your screen looks a little bit different don't worry about that.
01:31By the time we get to each element of the screen you'll know how to open that up
01:35and how to turn that on.
01:37So first I want to direct your attention to the toolbar.
01:41And you'll notice over the left there's a Run button, and there's a Stop button
01:45and then there's the Scheme menu.
01:48The Scheme menu is analogous to the Active Configuration menu for Xcode 3 and
01:54you'll notice when I pull this down, it's got some different schemes available
01:57and you can edit schemes and create new schemes and manage your schemes.
02:01This is really a whole lot more powerful than what we had in Xcode 3 and we will
02:04go into details on this in another movie.
02:07Then there is a Breakpoints button for turning on or off breakpoints.
02:11And that's followed by the Activity Viewer and you'll notice that it just says
02:15succeeded, no issues.
02:17All kinds of messages can come up there and it'll show you a progress bar when
02:21things are going on and if there's more than one thing going on there will be a
02:24little number and you can click on that number and you can see the progress of
02:28the various things that are happening.
02:30Then there's the Editor Selector and this selects the different editors in the Editor area.
02:36And so you'll notice if I click on this Assistant Editor, it brings up an
02:40Assistant Editor with the corresponding .h files.
02:43So you have the .m file on the left and the .h file on the right.
02:47This can be very convenient, especially if you have enough screen real estate for it.
02:51Here in this little movie format we don't have a lot of screen real estate.
02:56And then there's also the Version Editor and that allows you to navigate
03:01different versions, if you're using source code management, different
03:04versions of the same file.
03:06So we will just leave this over here on the main Editor Viewer.
03:10Then you'll see the View Selector and this allows you to turn on or off the
03:14different regions of the screen.
03:19And an Organizer button, which brings up the Organizer window and you notice
03:23that the documentation is now in the Organizer window and there's a toolbar up
03:28here with a lot of different possibilities for what shows up in the Organizer.
03:34Now let's take a look at the Editor area.
03:37You'll notice up at the top of the Editor area, there are jump bars for the editors.
03:43This one here is very familiar.
03:44You will recognize this from Xcode 3.
03:46This is how you can navigate to different parts of the file that you're editing.
03:51There's also the breakpoint gutter.
03:53And this is the area where your breakpoints will show up.
03:56And there's the focus selection area where if I hover my cursor over this you'll
04:01see that it will highlight particular blocks of my code and that can be
04:06convenient at times as well.
04:08Over on the left is the Navigator area.
04:11There is an Navigator Selector bar, which we can use for selecting different
04:16navigators in the Navigator area.
04:19And there's a filter bar down at the bottom where I can type in something
04:23like .m and it'll show me all of my .m files or .sib and it'll show me all my NIB files.
04:31And I can click on this little X, this little clear button, and it will clear this out.
04:37Down here at the bottom we have the Debugger area.
04:40And if that's not showing, you can select it with the View Selector up at the top.
04:45The Debugger area has a debugger bar, where you can perform various operations
04:49on the Debugger area.
04:50And it also has a selector or you can select either just the debugger output or
04:57just the log output or both.
05:00And on the right, there's a Utility area with an Inspector pane and a Library pane.
05:08And the Inspector pane is where you'll see the various inspectors.
05:11If I bring up this NIB file this'll be familiar from the old Interface Builder
05:16and you'll notice that there is a number of different inspectors available for
05:21the different things in the Interface Builder and of course the Inspector area
05:25is also used for our code files and here we can get documentation or just
05:32information about the file.
05:34And the Library pane has a Library Selector bar for different kinds of things we
05:38can grab from the library.
05:41And then there's the objects themselves, which can be dragged from the
05:44library into the code.
05:46For example from the Code Snippet Library we could grab a little do-while
05:50statement and drop it here into the code.
05:53And that'll insert that do-while into the code.
05:57And I'll just press Command+ Z here to undo that change.
06:01So the new layout in Xcode 4 is a significant change from previous versions.
06:06There are real advantages to this more integrated approach, but it may take a
06:10little getting used to.
06:11So I strongly suggest taking some time to get to know this new integrated layout.
06:17For a more complete discussion of the differences between the Xcode 3 and Xcode
06:214, please see the Xcode 4 New Features title on lynda.com.
Collapse this transcript
Understanding the human interface guidelines for iOS
00:00Apple's Human Interface Guidelines are incorporated into the App Store Review
00:04Guidelines, so compliance is not optional.
00:07You must follow these guidelines in order to have your app approved.
00:11The good news is that for the most part following these guidelines will make
00:14your app more polished, easier to use, provide a better user experience and
00:19generally work better than if you were to provide a custom user interface.
00:23The purpose of the Human Interface Guidelines is to provide a consistent and
00:27predictable experience for the user.
00:29It's not so much a matter of best practices as it is about consistency.
00:33Well there are certainly some who would say that Apple's interface is better
00:37than that of other platforms, the truth is that it just seems that way.
00:41One major reason for this is the Human Interface Guidelines. Because Apple
00:45provides strong encouragement to to use a consistent interface from
00:50application to application, your application appears
00:52easier to use because familiarity is always easier.
00:56Also because the UI is so rich and its API is consistent, it's much easier to
01:02program to the Human Interface Guidelines than would be not to.
01:06This provides an added bonus in the form of stability because these UI elements
01:11are based on well-tested mature code.
01:14The Human Interface Guidelines document is a living document, it gets updated
01:18with every release of the OS and sometimes in between.
01:22This is the App Store Resource Center and I've selected the App Review Process.
01:28And if I scroll down here just a little bit it talks about the Human Interface
01:31Guidelines and then there is a link to the document itself.
01:35So I click on that link and I get the iOS Human Interface Guidelines, which is
01:40sometimes called the Mobile Human Interface Guidelines, and you'll notice over
01:44here that there is a link to a PDF.
01:47What I suggest that you do is that you download the PDF and read that-- it's
01:51actually a whole lot easier to read. It's a relatively large document, it's
01:56about 150 pages or so.
01:58So I recommend that you spend some time familiarizing yourself with it.
02:02If you're really committed to creating great apps, I strongly suggest that
02:06you set aside a day or two or even longer just for studying and experimenting with the HIG.
02:13Once you're familiar with it, it's easy to keep up.
02:15Apple publishes change logs with each update, so you can just read the
02:19parts that have changed.
02:22The primary principle to keep in mind while considering these guidelines is that
02:26your app should be easy for the user to use.
02:28The user should be able to focus on the task at hand, the user should be
02:32familiar with the controls and they should operate as would be expected by
02:36someone accustomed to using iOS applications.
02:40Use familiar terminology instead of technical jargon, in other words instead of
02:44saying "Select Button to Submit," you can say something like "Touch the Button,"
02:48and be sure that any animation that you use suddenly enhances the task
02:53at hand, but doesn't distract.
02:55Make your error messages clear and friendly instead of "Error 42 bad input"
03:00say something like "I didn't understand that command."
03:02Make it easy to recover from errors and allow users to push buttons in any order.
03:08Apple provides a rich library of standard widgets, controls, icons and other
03:13user interface elements.
03:15Using these standard resources will make your interface seem familiar.
03:19It's kind of like a fan who calls a radio station, requests their favorite song
03:22over and over again.
03:24Users will gravitate towards the familiar and if your application has a familiar
03:28interface it'll seem familiar and users will gravitate towards your application.
03:33Be very careful about modal designs.
03:36Users expect to be able to use any part of your application at any time, so
03:40don't require them to switch modes unless it's really necessary.
03:44For instance if you absolutely need a piece of information before continuing
03:48with an operation then you may need a modal pop-up, but otherwise keep in mind
03:53that most modal design is for the convenience of the programmer not for the user
03:58and you want to design for the user.
04:00Device Resolution is becoming a lot more fluid in the iOS ecosystem, so as much
04:04as possible try to keep your design as device independent as possible.
04:08One way to do this is to make sure you have @2x versions of all your icons and images;
04:13these will be automatically used by devices with retina displays.
04:18Try to be flexible and allow as many orientations as make sense for your app.
04:22Avoid reading screen dimensions as much as possible and use standard APIs
04:27to position your elements, and avoid in-app settings, use the settings in
04:31app interface instead.
04:32Apple's Mobile Human Interface Guidelines are really about the user.
04:37There is a lot there to make your job easier, but mostly it's there to protect the user
04:41experience which ultimately serves Apple's mission of making their products
04:45persistently desirable for their market. This is key to Apple's success and by
04:50extension the success of your app.
Collapse this transcript
Creating icons
00:00Creating icons for your iOS app is a fairly straightforward affair. The icon is
00:05just a simple image scaled to several specific dimensions each delivered in a
00:09separate PNG file, one image per file.
00:12Your icon is an important part of your iOS app, so you want to do a good job
00:17with it. You want to hire a designer unless you have those skills yourself and
00:21you want to make sure that it composes well for all the necessary sizes.
00:25For our purposes I have an icon here in this Icons-start folder and it's in a
00:31Photoshop file, so I am going to make a working copy of this just to drag this
00:35folder with the Option key pressed and rename that copy to Icons-working.
00:44We're also going to be working in this X- code project which is our demo application.
00:48So I am going to make a working copy of that and we'll call that BWDemo-working,
00:56
00:56and so let's go ahead and get started.
00:59I am going to open up this icon file in Photoshop. You can use any image editing
01:04program that you want that's capable of making that PNG file in these
01:07dimensions, which is probably just about any image editing program at all.
01:11So what we have here is a 512x512 pixels image and the largest dimension of the
01:20image that we need is 512x512, so I've composed it in 512x512.
01:24I've left a little bit of space around the outside, so the iPhone can do its
01:29thing creating the rounded edges and such, and now we're going to go ahead and
01:32resize it to the different sizes that we need.
01:34But first I'm going to save one at 512 x512, because we do actually need that
01:38one, and I am going to go ahead and use the Save for Web & Devices or I could
01:42press Shift+Option+Command+S and this one is already at the size that we
01:47want, so I'm going to go ahead and save it, the Save button is off the bottom
01:51of the screen here.
01:52I happened to know if I press the Enter key I'll get the Save function and this
01:57is in our correct directory there, and so I'm going to say Icon-512.
02:02I am going to name these with the dimensions in the file name, there's actually
02:07specific names we need to put in the bundle or we'll do some copying and
02:10renaming later to get those into their right places.
02:12So Icon-512, the 512x512 image is used actually for the app store, so that's not
02:18put in the bundle that's submitted the app store when we submit the app and so
02:23there is our file and you'll see it is 512x512.
02:29So the other sizes that we need, we need a 57x57 and a 114x114, that's the icon
02:36itself that shows in the springboard, that shows on the homepage on the device
02:42and the 57x57 version of that is for the older iPhones and the 114x114 is for
02:49the newer ones with the retina display.
02:51We're also going to need a smaller icon that's used for search results and also
02:56is used in the settings app if they are settings for your app, that's 29x29 for
03:02the older iPhones and iPod touches, and 58x 58 for the newer ones with the retina display.
03:07So those are four more images we're going create, there is a couple more that
03:10you can create for the iPad, if your app is a universal app. We're not going to
03:14be doing that, that's 72 pixels by 72 for the main icon for the iPad and 50x50
03:21for the search results.
03:22We're just going to be making the ones for the iPhone and the iPod touch.
03:25So I am going to go ahead and press Shift+Option+Command+S and resize this to
03:3157x57 and there it is, and I am going to save that, I am going to call Icon-57, and
03:40we'll make the 114x114 version,
03:50and we'll make the 29x29 version,
04:03and we'll make the 58x58 which is double 29.
04:08
04:12So here's our images, we've got the 512x512, 114x114, 58, 57 and 29.
04:24So I can go ahead and close Photoshop, I'm not going to save because I haven't
04:27actually changed the image at all.
04:29I like to actually keep these and so I'm going to create a new folder and I'm
04:34going to call it Originals and I'm going to make a copy of all those into that
04:41
04:43and then I'm going to take these in this folder here and I'm going to rename
04:46them the way that I need to rename them.
04:47This one I don't need to rename, because we're just going to submit that when we
04:50submit our app using iTunes Connect.
04:53Specific file names are required for older versions of iOS, actually versions
04:583.1.3 and earlier. You have to have these icons in with specific file names.
05:05For newer versions of iOS you're allowed to name them whatever you want and
05:09specify them in the info.plist.
05:12I like to actually do both, that way my icons work in older versions of iOS
05:17and a newer versions of iOS, it can find the files little faster by having
05:21them in the info.plist.
05:23So we're going to go ahead and rename them and you'll see the official names
05:26that these are supposed to be.
05:27The 57x57 is called Icon.png, and that's the actual main icon for the app.
05:34
05:35And the 114 is called Icon@2x, and that's the main icon for the app with the double
05:43resolution for the retina display.
05:47And the same with the 29, the 29 is called Icon-small and that's for the search
05:53results and the 58 is -small@2x and that's for the retina display.
06:01So we're going to take these and we're going to copy them now into our Xcode
06:05project, so I'll go ahead and I'll open our Xcode project in Xcode, and there it
06:11is, and then we're going to drag these into the Resources.
06:17
06:18We don't need that 512, we just need these four, and so I'm going to select the
06:24Resources folder and I'm going to drag these in, and when I do I'll get this
06:29nice little dialog box that gives me the opportunity to copy them into the
06:33destination group's folder if needed.
06:34Now I'm going to check that box, so that we're actually working with copies of
06:38the files and we're not just linked to the originals.
06:40Now I'll go ahead and I'll build and I'm going to run it, make sure we've got
06:48the Simulator and Debug and we're in the iPhone Simulator not the iPad
06:53Simulator, and I'll press Command+R to run.
06:56This is actually the retina display version of the Simulator and there is our
07:00little app that does nothing.
07:02Because this screen is small it's actually zoomed in at 50%, I want to see the full thing.
07:08So I'm going to go ahead and Scale to 100% and there we can see our
07:16full resolution icon.
07:18You notice it has little shine on it.
07:20I'll show you when we get into the info.plist I'll show you how to turn that
07:24off if you want to.
07:25Sometimes you're going to want it, sometimes you're not. And if we go to the
07:28search results, if I just press this once, we press it again we get the little Search
07:34window and if I type bwdemo there we see this is the search sized one.
07:39So these are all working and if we switch our hardware to the non-retina
07:43version, press run again here, you'll see that we get the non-retina size,
07:50
07:52and the same if we press the search results here and there it is.
07:57So we've tested all our different icons, we can see that they're all coming up
08:00exactly right, and that's how we create the icon for our iOS app.
08:07
08:08Now you don't want to skimp on your icon, it's not a lot of extra work to
08:12support the different icon sizes and doing a good job of this will help make
08:16your app look more professional for your users.
Collapse this transcript
Generating certificates
00:00In order to develop an iOS application you'll need a developer certificate, a
00:05distribution certificate, a developer provisioning profile, a distribution
00:10
00:10provisioning profile, and an app ID.
00:13There may be other requirements for things like testing an ad-hoc distribution,
00:17but these are the basic requirements that we'll focus on for this course.
00:21In this movie we'll generate the certificates and we'll create the provisioning
00:24profiles in another movie.
00:27All of this is done in the iOS Provisioning Portal.
00:30So from the iOS Dev Center you simply click on this link over here that says iOS
00:35Provisioning Portal.
00:37You'll need to be logged into your developer account of course to get to this.
00:41And the first thing we're going to do here is we're going to download the
00:44Worldwide Developer Relations Certificate Authority Intermediate Certificate.
00:50We'll get that by clicking on Certificates, and you'll see this link down here,
00:55If you do not have a WWDR, that's the Worldwide Developer Relations intermediate
01:00certificate installed, click here to download now.
01:03What this use is, is a certificate that binds your certificates to the
01:09certificate authority, and Apple is providing this certificate authority called
01:13the Worldwide Developer Relations Certificate Authority.
01:17And what that means is that they are standing as an intermediary to certify to
01:24the users that you are who you say you are when you provide applications for
01:28them to run on their devices.
01:29This is actually very important and this is one of the reasons that people feel
01:34comfortable downloading apps from the app store.
01:37So we're going to save this to the Desktop and I'll just click on this, and that
01:42will save it to the Desktop.
01:45And I'll right-click here and say Show in Finder and I'll get this little Finder
01:50window with the certificate right there.
01:52I simply double-click on this and it installs it in my Keychain and you'll
01:57see it right here Apple Worldwide Developer Relations Certification Authority certificate.
02:02I can right-click on that and Get Info and you can see exactly what that is,
02:08this is called an Intermediary Certificate.
02:11It's part of a chained root certificate process that basically allows a
02:16certificate to do what it needs to do to certify the other certificates that
02:21you're going to sign.
02:22So we'll close Keychain Access for now and we'll go back to our browser, and
02:28we're going to start by creating the Developer Certificate.
02:31This is the first certificate that you need to create.
02:34This identifies you as the developer.
02:37And in order to get this certificate we actually need to create a certificate
02:42signing request, or called a CSR and we'll open up Keychain again.
02:47And we'll come up here to the Keychain Access menu and go to Certificate
02:52Assistant and say Request a Certificate From a Certificate Authority.
02:57
02:58Now here you'll need to use the email address that you used when you signed up
03:03for your developer account, this must match what's on your developer account.
03:09
03:09And then in the Common Name field you want to put a unique ID for this
03:14developer private key.
03:17Finally you're going to click on Saved to disk and Let me specify key pair
03:22information and click Continue, and we'll go ahead and we'll save this on the Desktop.
03:29And the Key Size must be 2048 bits, and the Algorithm must be RSA, and these
03:35are the things you get, because we check that little box that said key pair information.
03:39So we'll click Continue and the certificate has been created on disk.
03:45I am going to close this, we're not going to need it in the Finder, because
03:48we're going to upload it to the webpage.
03:49So I am going to close this and come back over here to the webpage and say
03:53Request Certificate, and all these instructions basically say to do what we just did.
03:58And I am going to Choose File and there is the certificate request right there
04:02on the Desktop, CertificateSigningRequest, that's the CSR, and I am going to
04:07choose that and I'll click Submit.
04:12
04:13Now it says Pending Issuance, this doesn't actually take very long, if I just
04:17click on this Certificates again here, there it is.
04:21It may take just a minute if you don't get it on your first try you can try
04:24it again, but there we have the certificate and now I'm going to download that certificate.
04:31And I should find it now on my Desktop and there it is Developer Identity
04:37Certificate, and I'll double-click on that and that installs it in my keychain.
04:43So here we have the Worldwide Developer Certificate Authority which we already
04:47downloaded before, and we have our iPhone Developer Certificate with the serial
04:53
04:53number and everything that was just issued today.
04:56We also have this public key and private key and these are important.
05:01You want to keep a copy of your private key, and click on My Certificates you'll
05:07see this Developer Certificate and you'll see the private key here.
05:10You really want to save that someplace, and of course it's saving your
05:14keychain, but if you ever need to install it on another machine for some reason
05:19you lose this machine or this machine becomes unavailable, and you want to be
05:23able to use this certificate, you can download the certificate again from the
05:26website anytime you want.
05:28You see the Download button right there, you can always get that, but it's
05:31no good without this private key.
05:33So you can always export this private key and save it someplace and you'll be
05:37able to import it on another machine just by double-clicking on it, and that
05:41will save you a lot of grief, should you ever need to change machines, or as I
05:45do, I do development on two machines.
05:47I've got my desktop machine at home, and when I'm traveling I take my laptop and
05:52so I have that private key and that certificate installed in both places.
05:57And you want to do that of course with all of the certificates that you install.
06:01So that's our Developer Certificate. Let's go ahead and create the
06:04Distribution Certificate.
06:06I don't necessarily want that highlighted, I want to just go back here and do
06:11this again without that highlighted.
06:13Request a Certificate From a Certificate Authority and this will generate a
06:18separate private key and a separate certificate request, we really want to do that.
06:23So this is for a Distribution Certificate, and the difference here is, is that
06:28the Developer Certificate identifies the developer, and the Distribution
06:32Certificate identifies the seller.
06:34And in the case of one-man shop, like me for instance, it's the same person,
06:40but you do need these two separate certificates in order to submit your
06:43application to the app store.
06:45So here in the User Email Address again you want to put in the email address that's
06:50on your developer account-- this must match.
06:54
06:55And here under Common Name you need to put in the company name on your developer
07:00account, and again this must match.
07:03Now you don't put anything in the Certificate Authority Email Address, because
07:07we're going to be submitting this on the web.
07:10I'll Save to disk and Let me specify key pair information, that doesn't
07:15change between times, but it's not a bad idea. Go ahead and save this on the
07:19Desktop again, and it will say Replace and we're going to say Replace.
07:23This is just the signing request, you don't need to save it.
07:26It's okay to replace it, and this information of course needs to be just like
07:31this 2048 bits and RSA.
07:34So we'll save that on the Desktop, we don't need it in the Finder, because we're
07:38going to upload it from the webpage and we'll come here and this time we'll
07:43click on Distribution and Request Certificate.
07:48So this is a Distribution Certificate and Choose File, and that's the
07:54
07:54Certificate Request right there, the CSR CertificateSigningRequest, choose
07:59
08:00that and click Submit.
08:03And there it is, and it's Pending Issuance again, count to 10, click on
08:08Certificates and then I want to click on Distribution so that I get that
08:12Distribution Certificate, because when I click on Certificates it will take me
08:15to Development there.
08:17And I'll download this and there it's done.
08:21I'll come over here to my Finder and here is my Distribution Certificate.
08:26I'll double-click on that and now we have the Developer Certificate that we got
08:31before and the Distribution Certificate.
08:35And again if we go over here to My Certificates now we see the two of them and
08:39you'll want to save both of these keys.
08:41Because this is the private key, this one says lynda.com, this one is the
08:46business private key for the Distribution Certificate, this identifies the
08:50seller, and this one here identifies the developer.
08:53So we got two separate certificates and two separate keys you want to keep those
08:57keys, you can always download the certificates at a later time.
09:01So there you have the certificates you need. We'll be using those in the rest of the course.
09:07The certificates for signing your app are important parts of the security chain
09:10for your application.
09:11These certificates give the customer confidence that the app they're installing
09:15is genuine and it also helps to keep your paid apps from being shared with users
09:19who have not paid for them.
09:20These certificates are required by Apple for you to test your app on a device
09:24and for you to submit your app to the app store.
Collapse this transcript
Creating provisioning profiles
00:01In order to develop an iOS Application you need a developer certificate, a
00:05distribution certificate, a developer provisioning profile, a distribution
00:10provisioning profile, and an App ID, and there may be other requirements for
00:15things like testing, and ad hoc distribution.
00:18These are the basic requirements that we'll focus on in this course.
00:21In this movie, we'll create our provisioning profiles.
00:25You'll need your certificates first because those are used in this process.
00:29We generated certificates in a previous movie.
00:31A provisioning profile binds several digital objects together like certificates,
00:35devices, and applications.
00:37So we'll need to generate our App ID first because we'll use this with the
00:41Distribution Profile.
00:42So here in the iOS Provisioning Portal, you can get here from the Dev Center.
00:46We are going to come down here to App IDs and we're going to generate a new App ID.
00:52This is a very simple process.
00:55First, we're going to generate a description.
00:58This is used to identify the App ID in the Provisioning Portal and so I'm
01:04going to call this BWDemo, and I'm going to need a Bundle Seed ID and we'll
01:11
01:12just generate a new one and we don't have any here already, so we'll just
01:15generate a new one.
01:16That's like a little encryption key.
01:18It's not even an encryption key, it's more like a hash.
01:21It's a unique identifier within this system.
01:24And now we're going to need a Bundle Identifier, this will tie all this
01:27together with our bundle.
01:29And so a Bundle Identifier is in what they call Reverse-Domain Notation.
01:35It's basically like this "com."
01:38and I'm going to use this domain here ldcauthors followed by your App name.
01:44You can also put a wildcard here.
01:46You could say Asterisk (*) and this would allow you to use this same Bundle
01:50Identifier for several different apps.
01:52We're not going to do that here, actually that's a little bit less flexible.
01:56You can read the documentation and see if that choice is appropriate for your app.
02:00We're going to actually put in an App name here and I'm going to call this
02:02bwdemo201101, say Submit and now we have our App ID and there it is.
02:14And if I press Configure it'll allow me to copy and paste the entire thing.
02:18We don't actually use the entire thing very often, I'll show you how we use this
02:21a little bit later on.
02:23We're also going to need to add a device and this will be used for our
02:28Developer Profile and I don't have any devices in this account yet and so I'm
02:33going to add a device.
02:34Before I add the device I actually need the Unique Device Identifier the
02:38UDID from the device.
02:41So I'm going to open up Xcode.
02:43I have a device connected it's an iPod Touch and here in Xcode I'm just going to
02:49come over here to Window and select Organizer, and here's my iPod Touch and I'll
02:55select that you see it's a 3rd generation iPod Touch, there is its serial
02:59number, and this identifier here, this is the UDID.
03:03There's a number of ways to get a UDID, this is the easiest and this is the way
03:08that'll allow you to actually cut and paste.
03:11You can also get it if you want to in iTunes, and why don't I just go ahead and show you that.
03:19My device is connected so iTunes will see it, bring up iTunes here and if I
03:25select the device there on the left you see it's got the Serial Number here,
03:30it's a little secret Easter egg.
03:32If you click on that serial number it switches to the UDID, the problem with
03:36this is you notice my cursor is in arrow, it's not allowing me to select it.
03:41If I click on it or double-click on it, it just switches back and forth, so
03:45that's a long number for me to remember and switch back and forth and type in.
03:49So I prefer to get it in Xcode.
03:52So I'm going to Quit iTunes, here it is in Xcode.
03:54I'm going to double-click on that, press Command+C and then I'm going to come
03:59over here to Safari and I'm going to Add Devices and I'm going to call this one
04:05BW IPT 01, iPod Touch and I'm going to paste in my Device ID and say Submit,
04:16and there we have it.
04:17I now have that device.
04:19So we're going to need these things for our provisioning profiles.
04:24First we're going to create our Developer Provisioning Profile and we'll bind
04:28this with the device and that will allow us to test things with the device.
04:31So I'm going to come down here to Provisioning and Development Provisioning
04:35Profiles, I'm going to add a New Profile and I'm going to call this BW Dev
04:43
04:43Profile, and we're going to use the Lynda Author Certificate and the BWDemo App
04:50
04:52ID and the iPod Touch device.
04:57Now all that stuff will be bound together in this provisioning profile and I can use it.
05:03So I can click Submit and you notice that it says Pending there and if I click
05:08on Development again there it is, and now I can download it.
05:11So I'm going to go ahead and download this to the Desktop and here it is here,
05:16BW_Dev_mobileprovision.
05:18So if I open up and show that in Finder and you'll see there it is the BW Dev
05:25Profile, that's the one that we named mobileprovision.
05:29And the way to install this is simply to right-click on it and open with Xcode
05:36
05:36and now there it is, it is installed in Xcode.
05:40Now if I come over here to my device and there it is in my device, it's already
05:45been added automatically.
05:46If it's not you can click Plus (+) and you can add it this way.
05:51So now that profile is installed on my device and I'm going to comeback here to
05:56the browser, and we're going to create our Distribution Profile.
06:00We'll click on Distribution here and say New Profile, and once we have all these
06:07things that we need this becomes actually really easy to do.
06:10So I'm going to select App Store and I'm going to call this one BW Demo App
06:16Store profile, there we go.
06:19And our Distribution Certificate, it's already selected it, I'm going to select
06:23the App ID for BWDemo and I'm going to say Submit.
06:28Now you'll notice here it's grayed out, it says Devices (optional), this is
06:32if you were creating an ad hoc distribution, but we're not doing that this is for the App Store.
06:37So I'm going to go ahead and submit this, and it says pending there, I'm going
06:41to count to 10 and click on Distribution and it ought to be ready,
06:45there it is.
06:46And so I'm going to select Download and it's downloaded it, it didn't show
06:52the little thing here because this is Safari, but if I come back here to the
06:55Finder I'll see there is the BW_Demo_App_ Store.mobileprovision, and I'm going to
07:00open that with Xcode, and there it is BW App Store mobile provision, and we'll
07:06be using that when we submit to the App Store.
07:09So the Provisioning Profiles bind the various elements of the process together,
07:13your certificates, your devices, your App ID.
07:16These relationships are important to the chain of authority that allows you to
07:20work with signed code which is necessary for iOS Applications.
Collapse this transcript
Testing your app on a device
00:00Now that we have created our certificates and installed a developer provisioning
00:04profile on a device, we can test our App on that device.
00:09I'm going to start by making a working copy of BWDemo-done, this is the one
00:13that's got our icons in it, you may have a separate folder where you did your
00:18work, you're welcome to use that one I'm going to make a working copy of this
00:21and I'm going to call it, BWDemo-testing.
00:26Go ahead and open this in Xcode by double -clicking on the Xcode project file and
00:32I'm going to show what happens if you skip this step.
00:35I'm going to bring up the Debug window by pressing Command+Shift+R and I'm going
00:40to select our device which I can do with either one of these.
00:43You will notice, if I select it here, it switches over there as well.
00:48I'm going to make sure that the Active Executable is for that device.
00:52I'm in the Debug Configuration and I'm going to go ahead now and run it.
00:57I'm going to press Command+R and this will attempt, because it's not going to
01:02actually work, it's going to attempt to run this on my iPod Touch that I've
01:05sitting here in the booth with me.
01:07So I'm going to press Command+R and you notice that it says "failed (1 error)"
01:11and if I click on this little red exclamation point (!)
01:14and the 1, it says Code Sign error, the device identity blah, blah, blah.
01:19If I select more, it doesn't match any identity in any profile and that's
01:24just actually wrong.
01:26So I'm going to close that and I'm going to show you what actually is the problem here.
01:31We're going to come over here to Resources and open up Info.plist and down here
01:37in Bundle Identifier this is actually the problem right here.
01:40Our Bundle Identifier does not match the Bundle Identifier in the
01:45Distribution profile.
01:46So I'm going to select that and I'm going type in the correct Bundle
01:49Identifier and this has to match whatever it is that you entered in the
01:53provisioning portal.
01:54So com.ldcauthors and it should be yours not mine.
02:00Do not use this one bwdemo201101.
02:04
02:05Now it needs to be just the Bundle Identifier part, that hash number at the
02:10beginning of it, that's just used in the portal.
02:12That's not actually used here.
02:14The Bundle Identifier is the part that starts with the top of the reverse domain.
02:18Okay, so I'm going to press Command+S to save this and sometimes it asks me to
02:23save it again anyway, because that's Xcode in all its glory.
02:27We're going to bring up the Debugger console again and press Command+R to
02:31Save before building.
02:32I said that was okay, but we'll go ahead and say it's okay again.
02:36Now wants to use these keys and I'm going to just say Always Allow, so it
02:40never asks me again, and now it's installing it on the device and that worked
02:46and it says Continue.
02:47We usually get this little thing about the symbols and that's fine if you get
02:52it, if you don't get it.
02:53It's not a problem, but at this point you should be able to pick up your device
02:57and look at it and you'll see your App running on the device.
03:02Now I'm going to press Shift+ Command+Enter or the Return key
03:06Shift+Command+Return and that stops the app from running.
03:10You should be able to look at your device and see your icon there.
03:13It may not be on the first page, it sometimes installs it on another page, if
03:18you have multiple pages on your device and there you have it.
03:21You've now successfully tested your App on your device.
03:24I strongly recommend that you do this a lot and that you keep the Debugger
03:29Window up, so that you can see the log as you're doing it and that you spend
03:34some real-time testing all of the functions of your App, that's going to save
03:37you a lot of trouble down the road.
03:39Testing your App on real devices is a critical step in the process of preparing
03:43your App for the App store, and now that we've our ducks in a row;
03:47certificate, Device UDID, App ID, provisioning profile, and once all this makes
03:52sense to you, it's really pretty easy to provision our device for testing.
03:56So it's not a step that you want to skip.
Collapse this transcript
Creating screenshots
00:00One of the App Store submission requirements is at least one screenshot of your application.
00:06This image is part of your customer's first impression, so you want it to be perfect.
00:10It's easy to create a screenshot.
00:12The requirements are that the screenshot be 320 pixels by 460 pixels or 320x480.
00:19
00:20The difference is whether you have the status bar or don't have the status
00:24bar in your screenshot.
00:26It's actually recommended that you do not include the status bar in your
00:29screenshot, it's allowed if you need to, but it's really recommend that you
00:34don't. There's basically a couple of ways that you can get a screenshot of your app.
00:38They both require that your app be running on an actual device.
00:42One way is to simply press the Sleep and Home buttons together at the same time
00:46which takes a screenshot and stores it in the Photo Library on your device and
00:51then you can sync it with iPhoto and pull the screenshot out that way.
00:55There's actually an easier way though and that's using the organizer in Xcode.
01:00So let's go ahead and bring up Xcode.
01:01I'm going to start by making a working copy of this BWDemo-done and I'll
01:07call this BWDemo-testing and I'm going to open this up.
01:13
01:13Because the Example Files don't have the Bundle Identifier in them, I'm going to
01:16have to come in here and put it in manually.
01:19So I'll go to Resources > Info.plist and enter the Bundle Identifier here.
01:24It won't run on my device without this, and save that.
01:29It'll probably ask me to save it again, because it always does.
01:33I'm going to select the Device here in my Active Configuration drop-down and
01:39then I'm going to bring up the Organizer and select the device.
01:45Now, I'll press Command+R to run the App on the device, doing its thing and now
01:54the App is running on the device, and so I come over here to the Screenshots tab
02:00and I simply select Capture.
02:03And there we have the beautiful screen of this dummy App that we're using
02:08for our example here.
02:10It simply says this page intentionally left blank, and you'll notice that it
02:14has the status bar at the top with battery indicator, and the time and all of this stuff.
02:21So I'm just going to take this image from the left-hand side and I'm going to
02:25drag it off to the desktop.
02:27There we have it on the desktop and if I press the Quick View Spacebar you'll
02:31see that it comes up and we have that beautiful little screenshot.
02:35So now I can quit Xcode and yes, we'll stop the task before we quit.
02:40And I'm just going to drag this here into my Screenshots folder and we're going
02:46to open this up in Photoshop.
02:49Of course you can use any image editing program you want to, and so it's opened
02:55up the image and there's really a number of things you can do here.
02:59The way that I like to do this because I'll often have several different
03:02screenshots that I'm working with is I'll actually create a new file in
03:06Photoshop and I'll give it the final dimensions that I want to work with.
03:10So, the Width will be 320, and the Height is going to be 460 because I'm not
03:15going to include the status bar and the Background transparent, and RGB and all
03:20of this, and I'm going to say OK.
03:21There is my empty layer and everything, and I'm going to comeback over here
03:25to the Screenshot and I'm going to select all and press Command+C. So I press
03:30Command+A and Command+C to select all and copy, then come back over here, and paste it in.
03:35And you'll notice that it pastes it in, in a way that you can still see that at the top.
03:40So pressing V to move, I'm just going to nudge it up here until it lines up with
03:44the bottom instead of the top and there we have our screenshot all perfect,
03:50exactly the dimensions that we need with really a minimum of fuss.
03:54So if I wanted to have several screenshots I could have them be separate layers in here.
03:58I can do whatever I want with them and that will work.
04:00So I'm going to press Command+S here to save my Photoshop file, and I'm going to
04:05just go ahead and put it there in that Screenshots folder and call it
04:10BWDemoScreenshot.psd and that's fine.
04:17It doesn't matter one way or the other.
04:19Now, I'm going to export it also as a PNG file, because that's what we're
04:24going to ultimately need.
04:26And so I'm going to go in here to File menu > Save for Web & Devices or I
04:30can press Shift+Option+Command+S and we're just going to leave that at the size 320x460.
04:38I'm going to go ahead and save that and again put it in that same folder,
04:46
04:47and we can leave this name.
04:48That will work just fine.
04:50So I'll quit Photoshop and we saved it already, so we really don't need to do that.
04:55It always asks again whenever you use that Save for Web & Devices for some reason.
04:59So here are the files we have in here.
05:00There is our Screenshot and that's just perfect and we'll need that for when we
05:05submit the App to the App Store.
05:07So the Screenshot is an important part of your online presence in the App Store.
05:11This is the first impression for your customers so you want it to show your App in its best light.
05:16Feel free to be creative, but make sure it's a good representation of what your
05:20App actually looks like.
05:22This will help your App get approved and it would also help a lot with your
05:25customer's sense of satisfaction after they buy it.
Collapse this transcript
2. Preparing the Bundle
Understanding the application bundle
00:00The payload that you submit to the App Store is called an Application Bundle.
00:04This is directly analogous to the APP files that are used for applications on a
00:08Mac running OS X. The Application Bundle is a container for your application.
00:13It's specifically designed to contain all the files necessary to run your application.
00:18The Application Bundle is actually a self-contained file system that contains
00:22directories and files just like a file system on a computer.
00:25The files contained in the bundle include the executable application,
00:29configuration files, images, data sets and other assets.
00:34XIB files are configuration files for screen layouts.
00:38XIB is commonly pronounced nib, because these are XML versions of the older NIB files.
00:44They're created in the Interface Builder and are loaded at runtime by your application.
00:48Other assets in the bundle include icon files, any other image files that maybe
00:53loaded by the App at runtime, and any data files your app needs to use will
00:57also be included here.
01:00The bundle will also include the info.plist file.
01:03This is an XML property list file, and you can think of it like a configuration
01:07file for the bundle itself.
01:09The application bundle is what gets installed on your user's device.
01:13It's the result of your work, it's ultimately your product.
01:15So understanding what it is and how it works is an important part of learning to
01:20distribute iOS applications.
Collapse this transcript
Setting up the Info.plist file
00:00Apple refers to the Info.plist file as meta information for the
00:04Application Bundle.
00:06You can think of it like a Master Configuration File.
00:08It's a starting point for the system to look for vital files and information in the bundle.
00:13Let's start by making a working copy of our project.
00:17I am going to make a working copy of BWDemo-start here.
00:20You can follow along with your own project if you're doing that, or you can use this one.
00:25I am going to rename this to BWDemo-working.
00:29I am going to navigate over here to the info.plist file.
00:32
00:32I am going to open this up in BBEdit just so that you can see what it is.
00:37This is a normal XML file.
00:40That's really all it is.
00:41It's got keys and values, and keys and values, and keys and values.
00:45So I am just going to close that.
00:46Now, I am going to open it in something called the Property List Editor.
00:52You see that in the Property List Editor it shows real dictionary names for as
00:56much of it as it knows about.
00:57It doesn't seem to know this one here and Values.
01:01And up here in the View menu you can select a Property List Type and you see
01:06it's figured out that it's an info.plist file, hasn't noticed that it's actually
01:09an iPhone info.plist file.
01:11So if I select that, then it knows this particular key.
01:16So how it views it?
01:17It's got a little dictionary where it has human readable names for each of the keys.
01:22But if you select None, then you'll see the actual Keys, and the Type, and the Value.
01:29So you see what that looks like.
01:30If I close this, and I'll open this project in Xcode, and I'll navigate over
01:35here to the info.plist file, you see exactly the same display.
01:41
01:41In fact, it's using that same editor as the editor for this type of file.
01:46And if I select this root key, this little trick doesn't work unless you've
01:50selected this root key, and come over here to the View menu and go to Property
01:54List Type, you see it's figured out that this is an iPhone info.plist file,
01:58because it knows that this project is an iPhone project.
02:00And again if I select None, I get exactly that same display.
02:04So it's actually using that same Property List Editor for this XML file;
02:11this plist file.
02:13Now there's actually a lot of things that you can stick in here.
02:17We've only touched the surface and we're going to touch a little bit more, but
02:20nowhere near the amount of what there is.
02:22I come over here to Safari, and I am here in the iOS Dev Center.
02:25I am going to search for the documentation on this, and you can search for
02:29"information property list key reference."
02:37And there is a first one up here on the Reference guides;
02:39Information Property List Key Reference.
02:42This is a whole documentation.
02:43It's about 150 pages of documentation on what is available here, Core Foundation
02:49Keys, there is just lots and lots of them, Mac OS X if you're writing for Mac OS X,
02:54really or doing iPhone stuff, and so you're going to find in the iPhone
02:59documentation the kinds of things that are features.
03:03You'll notice over here it says iOS or Mac OS X for the types of keys that these
03:08are, this Icon files one, is one that we're going to be using.
03:11This middle column is what they call the Xcode name and this left column is the Key name.
03:17So CFBundleIconFiles is called "Icon files" in Xcode.
03:21You'll see over here under Icon file if we change this to Icon files in plural,
03:28that key is that one.
03:29This is actually something we're going to fill in now.
03:32So I suggest that you download this documentation in PDF format and keep a
03:36copy of it around because it's actually a little bit tricky to find some of this
03:39stuff sometimes in this web site that's just got a huge amount of information.
03:44Then you'll have a copy of it and you'll know where it is.
03:48So the first thing we're going to do is we're going to make sure our Bundle
03:50Identifier is right and if you've been following along, you've got your
03:53Bundle Identifier in here.
03:54I am working with the Exercise Files and so I am just going to enter it here,
03:59the one for my little demo program.
04:01Then I am going to come up here to Icon files and under Icon files I am going
04:10to enter some items.
04:12How many do we have here?
04:151, 2, 3, 4 icon files, and so Item 0 is going to be Icon.png.
04:24Now what this is for, for recent versions of iOS, especially after 4.0.
04:29The system will actually look here first for the icon files rather than
04:33searching for these default names for them.
04:37You don't even necessarily need to have them be these names;
04:39you can have it be Icon-57, Icon-144 and it would work.
04:44But, if you do that it won't work on some of the older versions before 3.1.3. So I do both.
04:50I name them by the right names and I also put them in here.
04:53That ensures that whatever version of iOS this is running on, it'll find those
04:58Icon Files as quickly as possible.
05:01So we're going to go ahead and enter all four of them here.
05:03I am going to click on this plus(+) and just do that so there's four of them.
05:10In fact, I don't have to put in the @2x, I do anyway.
05:17It will find those automatically, but I am just sort of a traditionalist, and I
05:21like to enter everything; Icon-small.png.
05:26I figure there might be some future version where they'll change the rules and
05:29it can't hurt to have them in here; @2x.png.
05:33So those are our files.
05:37And so Icon files is an array.
05:40If I go back over here to the View > Property List Type, and I select None, you'll
05:46see under CFBundleIconFiles says it's an array with 4 items and then each of
05:51those items is a String.
05:55
05:56Set that back the way that it's supposed to be.
05:59Now, there's one more interesting thing that we can do here.
06:02Depending on the characteristics of your icon, you may or may not want it to
06:06add that little shine.
06:08You'll notice when you look at some of the icons on your device that they have a
06:11little curved shine area at the top of them, and you can turn that on or off.
06:16You can select this key called "Icon already has gloss effect."
06:20If you check that, then when you bring it up, and I am going to go ahead and
06:24bring this up in the Simulator here, I'll select Run, Save before building? Yes.
06:29I am going to bring this up in the Simulator.
06:35 There it is!
06:37And you'll notice this icon doesn't have the shine effect.
06:39So this is the one with the shine that we did before, and that didn't have our Bundle ID.
06:44So it actually shows up as a separate application in the Simulator here.
06:48But, this one with the Bundle ID, you'll notice that it doesn't have that shine
06:52effect because I selected this key.
06:55So I quit the Simulator here and if I uncheck this, and save again, and run
06:59again, you'll notice that now it has the shine effect.
07:04So depending on how your icon is constructed, whether or not you really want that
07:08shine effect, or you already have some kind of an effect already on it, or you
07:12just think it looks better without it, you can enter this key and you can check
07:15this box or not check this box.
07:18The info.plist file is a key component of the application bundle.
07:21We've covered some basic parts, the parts that are required for submitting your
07:25app to the App Store.
07:26But for a lot more details about its many, many uses, use the Information
07:32Property List key reference document that's available in the Developer portal.
Collapse this transcript
Signing your app with Xcode 3
00:00In order to distribute your App in the App Store, it must be signed.
00:04Once you have your distribution certificate, this is relatively easy.
00:08So let's start by opening our project in Xcode.
00:11I'm going to make a working copy of the project here off of the Exercise Files.
00:15I'm using the 02-done version, which is the result of the last movie.
00:20I'm going to call this BWDemo-working.
00:23Feel free to use your own project. In fact if you have your own project to use,
00:27you'll want to do that.
00:29And I'm going to open BWDemo Xcode project (BWDemo.xcodeproj) here, and that
00:33will launch in Xcode.
00:36And you'll notice that the first thing I'm going to do here is I'm going to go
00:39ahead and set the Bundle Identifier.
00:41I have to do this every time because the Exercise Files don't have it in there.
00:46And the reason for that is that you really don't want using my Bundle Identifier
00:49anyway, and so if you're using the Exercise Files, you're going to need to put
00:54your own Bundle Identifier in every time you do this.
00:57Now if you've been following along and using our working files from lesson to
01:00lesson, this should already be done for you, and that will be fine.
01:03So I'm just going to enter it here,
01:11and save that, and I am going to come up and
01:13select the root of this tree over here, and right-click on that and say Get
01:18Info, and I'm going to come over here to Configurations, and I am going to make
01:23a working copy of the Release configurations.
01:25So I select Release, and press Duplicate and type in Distribution, so that
01:31creates a Distribution configuration profile, and we're going to use that for
01:37distributing the App.
01:38So I'm going to come over here to Build, and I am going to make sure I select the
01:41Distribution configuration, it's right there, and scroll down and under Code
01:47Signing in Any iOS, I'm going to select the Distribution Certificate.
01:55
01:57And of course there is a lot of other things that you can do in here.
02:01One thing that's important to do is under iOS Deployment Target, you're going to
02:05want to select the lowest version of iOS that you want this to run on.
02:10Like for instance, if you want it to run on anything in the 4.0 or at least 4.01
02:15depending on what features it is that you require.
02:17Oftentimes, I'll go all the way back to 3.1.
02:21If I'm not using any features and what this does, you'll see it's described
02:24down here at the bottom, for iOS 3.1, it says code will not load on systems earlier than 3.1.
02:30So it won't work on 3.0, but it'll work on 3.1, and all the ones later than
02:35that, and so you just want to select the one that's appropriate for your
02:38particular distribution.
02:40So I'm going to go ahead and close this and I'm going to select
02:44the Configuration here.
02:45I want to select Device, we're compiling for device not for the simulator, and I
02:51want to select the Distribution profile here, the distribution configuration,
02:55and then I'll go ahead and build.
02:58So I'm going to press Command+B to build.
03:00Now it's asking me if I want to use this, I'm going to say Always Allow so it
03:04doesn't keep asking me and that's of course our key for the certificate.
03:09So it built successfully, we have the Succeeded down here, that's really
03:13important and we can also check this in one other way if you come down here
03:18under Products and you see it says BWDemo.app, there I'm going to right-click
03:22on that and I'm going to say Reveal in Finder, and here you'll notice, you need
03:28to make sure this is in a folder that says Distribution that's one thing you want to confirm.
03:33That means that you built it for distribution and you want to make sure that
03:36says iPhone OS not iPhone simulator.
03:39If it says Distribution iPhone simulator that's wrong, if it says iPhone OS and
03:44something else that's wrong, it needs to say Distribution and iPhone OS, and
03:48then here's your App.
03:49I'm going to go ahead and Show Package Contents.
03:51This opens up the bundle, I'm going to make sure that it has this file here in it,
03:56embedded.mobileprovision
03:58that means that it actually did get signed and of course, you also have
04:02Code Signature up here.
04:04On these icon files will not be readable because they're signed and
04:08encrypted, and that's fine.
04:10This should all be encrypted stuff anyway.
04:13A few things like the info.plist are not encrypted, so that those can be read,
04:18but all the important stuff the code itself, the icons, that's all encrypted and
04:22that's as it should be.
04:23So I'm going to close that and there's one more step that's recommended here
04:27and it really depends on how you're going to be submitting it to the App Store
04:31but the documentation actually suggests that you go ahead and compress it at this point.
04:35So we'll do that, we're going to right- click on the App and we're going to say
04:38Compress "BWDemo.app".
04:40You want to make sure that you're not selecting both of these.
04:43You do not want to select both of them.
04:45You want to select only the Demo App, and you want to say Compress.
04:49And you want to do this in Finder, and not do it from the command line
04:51with the zip utility because chances are you'll get it wrong if you do that.
04:55It needs to be done in a very specific way.
04:57So I'm going to go ahead and say Compress here and then we'll get this
05:00BWDemo.app.zip, and that's a file that under some circumstances we would be
05:06submitting to the App Store.
05:08But we'll actually get to that a little bit later when we cover the submitting
05:11to the App Store part.
05:13So now you've successfully signed your App with your installed certificate, and
05:18it's ready to be submitted to the App Store.
Collapse this transcript
Signing your app with Xcode 4
00:00In order to distribute your app in the App store it must be signed.
00:04Once you have your distribution certificate, this is relatively easy.
00:08In this movie I'll show you how to sign your app using Xcode 4.
00:12The process is somewhat different from the process with Xcode 3.
00:15So I'll start by making a working copy of BWDemo-02-done.
00:22And I'm just going to rename that to BWDemo-working.
00:27And I'm going to open the Xcode project file from the project folder.
00:33Now this'll open the project in Xcode 4 because that's what I have installed on this machine.
00:38I'm going to select the project in the File Navigator.
00:43And this brings up the Project Editor here in the Editor portion of the screen.
00:47Now, the first thing I want to do here is I want to use the bundle identifier.
00:52Unfortunately you'll notice the part of its grayed out and what that means is
00:56that I won't actually be able to edit that part and I need to.
00:59So simply coming over here to the Info tab, I actually get to edit directly in
01:06the info.plist file.
01:07This is the info.plist file right here.
01:09And you'll notice that the bundle identifier has this variable in it,
01:15${PRODUCT_NAME blah blah blah.
01:17That's a variable and that's why it's grayed out over here in the Summary tab.
01:22So all I do it just edit it right over here and I'm going to type in a bundle identifier.
01:28This is my bundle identifier.
01:29You want make sure that you use your own.
01:31And in fact, your bundle identifier is probably already set.
01:35The reason I'm doing this here is because it's not set in the exercise files
01:40and it's not set in the exercise files because I don't want you using my bundle identifier.
01:43So I'm just going to type in mine right here.
01:47And now when I come back over to Summary you notice it's not greed out anymore.
01:51If I wanted to I could actually edit it.
01:53So the rest of this is fine.
01:55The version number of the devices and the deployment target, I actually do want to set.
02:00I'm going to set the deployment target to 3.1 and what this does is it means
02:07that it'll run on any version of iOS from 3.1 and higher.
02:11You'll want a set it to whatever makes sense for your application depending on
02:15which features of the development kit you're using.
02:19So that's it for the Summary pane.
02:22Now we're going to create a distribution configuration profile.
02:26So I'm going to select the project instead of the target over here.
02:30And under Configurations I'm going to make a copy of the release configuration.
02:35Press the little plus sign there and say Duplicate "Release" Configuration.
02:39And we're going to call this Distribution.
02:42Now we're going to edit the device scheme in order to use the
02:46distribution profile.
02:47Now this usage of schemes in Xcode 4 is a new paradigm.
02:52A lot of the things they used to do an active configuration and in other places
02:56in Xcode 3 are now consolidated here in the schemes.
03:00It's a different paradigm.
03:01It takes a little bit of getting used to it but it's actually a lot easier once
03:05you figure it all out.
03:06And so I'm going to bring down the Scheme menu here.
03:09And you'll notice it has all these different simulators, because I selected
03:12that deployment target.
03:13But I'm going to select the one that says Device.
03:17And then I'm going to come down here and say Edit Scheme.
03:21And under Destination it should say Device.
03:23If it doesn't select Sevice there and the Scheme is BWDemo and that's fine.
03:27Now I'm going to change the Build Configuration for the Run profile and Archive.
03:35So under Run under Build Configuration I'm going to select our new Distribution
03:38configuration and I'm going to do the same with Profile and with Archive.
03:44And you want to make sure that this Reveal Archive in Organizer is checked
03:48and it is by default.
03:49And so now we have edited the device scheme to use the Distribution profile and I'll say OK.
03:56And now so long as our scheme is set to Device it will use that
04:01Distribution profile.
04:03Now we're going to come over to the Build Settings tab, and I'll scroll down
04:07here to the Code Signing and you see we have code signing selections for each of
04:11these different configuration profiles.
04:14So under Distribution I'm going to select iPhone Developer like that.
04:21So now we're ready to go ahead and build our project.
04:24And os now I'm going to come up here to the scheme, make sure I've selected
04:28Device, and I'll press Command+ B to build. Build succeeded.
04:33You'll notice up here in the information box it says that Build BWDemo Succeeded.
04:38And so we're just going to make sure that it got built correctly.
04:41I'm going to click on this disclosure triangle over here in the File Navigator
04:45and under Products now I'm going to right-click or Control-click on the
04:50application and select Show in Finder.
04:54Now, the first thing we want to confirm is that this is in a folder that say
04:57Distribution-iphoneos.
04:58If it says debug over here or release over here, that's not correct.
05:05If it says emulator or something else over here, that's also not correct.
05:10It says Distribution-iphoneos.
05:13Now I'm going to right-click on the app and we're going to make sure that it's signed.
05:16I'm going to say Show Package Contents and you notice this file here that says
05:21embedded.mobileprovision, that means that it's signed.
05:25You'll also notice that these icons, if you try to view them, they look
05:29like they're empty.
05:30That's because they're signed, which means they're encrypted, which means that
05:34they cannot be read like this.
05:36You'll also see this folder that says code signature and you'll also notice that
05:40things like these plist files can be read because those need to be read by the
05:45loader before the rest of files are decrypted.
05:48And so this looks correct.
05:50I'm going to go ahead and close this.
05:52And now one final step.
05:54Apple recommends that we go ahead and compress this file.
05:57That makes it possible to submit the app using Application Loader instead of
06:01using Xcode, which is the old way to do it.
06:03It's probably not necessary if you using Xcode 4.
06:06You can go ahead and submit your app pretty safely with Xcode.
06:10But just to show you how this is done, now that we have this file up here in the
06:14Finder, we just right-click on it.
06:16Don't select both of them;
06:17select the one file.
06:19And right-click on it and press Compress Demo.app and you'll get a demo.app.zip
06:25and that's the file that you would submit using Application Loader.
06:29So now you have signed your app successfully with your installed developer
06:33certificate and it's ready to be submitted to the App Store.
Collapse this transcript
3. Submitting Your App
Understanding the submission process
00:00Once you have your application bundle complete and ready, it's time to submit
00:03your App to the App Store.
00:05Here's an overview of the entire process.
00:08If you've been following along step- by-step, these are the things that
00:10we've already done.
00:11We've signed our application with certificates that we've got from the
00:14iOS Provisioning Portal and we've assigned our App ID and installed it in
00:19our info.plist file.
00:21Next, we'll use iTunes Connect to submit the App.
00:24Sometimes it called ITC for short, this is Apple's portal for submitting apps to the App Store.
00:30This is the front page of the iTunes Connect portal.
00:34You'll notice that it does a lot of things.
00:36We're just going to be concentrating on this one part of it, Manage Your
00:40Applications and within that part we're just going to be concentrating on those
00:44parts that are relevant to submitting your app to the App Store.
00:47This portal does a lot of other things and it's all documented in this iTunes
00:51Connect Developer Guide that you can get by clicking on this link, it's a PDF
00:55file and I suggest that you download it and become familiar with it.
01:00iTunes Connect is where you enter all the metadata, keywords, icons,
01:04screenshots, etcetera, to get your app ready for the store and to maintain your
01:09app after it's in the store.
01:11There are two ways to submit your app with Xcode or with something
01:15called Application Loader.
01:16I've had trouble submitting apps with the current version of Xcode, so I've been
01:21using Application Loader directly for now.
01:23I'll show you both but I recommend you use Application Loader at least until the
01:27next version of Xcode.
01:29You can follow up in iTunes Connect to check on the status of your app, and to
01:32manage, its metadata after your app has been submitted.
01:36iTunes Connect is the portal for managing your app on the App Store, you'll want
01:40to get very familiar with it.
01:42It has a lot of options beyond the essentials we cover in this tutorial.
01:46You'll want to familiarize yourself with the documentation so that you may use
01:50all of its features.
Collapse this transcript
Registering your app in iTunes Connect
00:00iTunes Connect is like the back room at the store where the inventory is kept
00:04and the Bookkeeper adds up all the days' sales.
00:07It's available at itunesconnect.apple.com and this is where you submit your application.
00:13It's where you prepare to submit your application.
00:16It's where you manage your app after it's been posted on the App Store.
00:21It's where you go to check on the status of it while you're waiting for it to be approved.
00:26This is really a hub for all the activity around the Store itself.
00:31It really is very much like the back room at the store.
00:34You'll notice here in the top, there is a link to the iTunes Connect Developer
00:38Guide and I suggest you download that, it's a PDF file.
00:42This is where you can learn all the different things that you can do with iTunes Connect.
00:45For our purposes right here, we're really just going to be using the Managing
00:49Your Applications part.
00:51I'm going to click on Manage Your Applications, and I'm going to click on Add New App.
00:57What we're going to be doing here is we're going to be setting up the app,
01:01putting in its meta information, and getting it ready to submit the app.
01:05So the first thing we do is we put in the name of the app, and again you're not
01:09going to be using the same information that I'm going to be using here, so you'll put in
01:12your own information.
01:13I'm going to just type BWDemo and SKU number, SKU stands for Stock Keeping Unit,
01:19again this is the store metaphor, and it doesn't have to be a number, in fact I
01:24don't usually put a number there.
01:25I'm just going to say bwdemo201101, like that.
01:30And then the Bundle ID, this is the Bundle ID that we set up in the Provisioning
01:34Portal and so we'll select our bundling ID and you'll notice there is a link
01:38here to the Provisioning Portal where you can register a new one if you need to.
01:42So I'm going to go ahead and click Continue.
01:47The Date of Availability, I'm just going to pick a date in the future, because
01:50I'm not actually going to let it go through the review process because it's
01:54certain to get rejected.
01:56And Price Tier, I'm going to select Free here.
01:59If you click on this link and that link doesn't appear until you select
02:02something, well now it's there because I selected something, this price link,
02:06this will show you what that all means.
02:08It's a matrix of the prices in a number of different markets and Tier 1 means
02:12$.99, Tier 2 means $1.99 in US dollars, and it also tells you how much your
02:17proceeds are from it and that goes on for quite a while.
02:21So I'm going to select Free obviously, you can pick one of these other ones.
02:25If you do pick one of the ones that actually is for money, you need to make
02:28sure that you have all your banking information and everything set up in iTunes Connect.
02:32Discount for Educational Institutions, obviously that doesn't matter for free
02:37but you can look in the documentation for how that works.
02:39So I'm going to click Continue, and now I'm going to put in some of this
02:43meta information here on.
02:44For the Version number, I'm just going to say 1.0, Description-- Demo, Demo,
02:51Demo, Demo, again you're going to need to put in a real description, you'll want
02:54to take your time and write this. This is marketing copy, this is going to
02:57be displayed in the Store, you want to make sure that it's well-written and it
03:00describes your app well, and if you the word demo it there, it's sure to get rejected.
03:05Primary Category, I'm just going say Utilities and Secondary Category, I'm
03:10going to say Education.
03:11Keywords, it can be whatever you want, and your keywords are separated by commas
03:17and you want to make sure that it's well-chosen.
03:20These are the words that people will find when they search for it.
03:22So if it's a game, you don't even need to put "game" in there because people
03:26aren't going to search for the word game.
03:27They're going to search for the type of the game they want; poker, or cards, or
03:32first-person shooter or something like that.
03:35So you want to make sure that the words that are in here are the kinds of things
03:39that people are going to search for.
03:42So in the Copyright and Contact Email Address, Support URL, I'm just going to
03:55put mine in here obviously you'll want to put in yours.
03:59And Review Notes this is where you put things that you need to review board to look at.
04:04Like for instance, if you've got an Easter Egg in your program, you don't want
04:07them to find it by accident.
04:09You would put in here actual description, how they can get to it, things like that.
04:13That is going to be really, really important that you do.
04:18You want to put things in here that will explain stuff so that your app
04:22doesn't get rejected.
04:23So I'm just going to say None, None, None down here, and you'll notice that the
04:30App Rating you know, it changes if you do different things in here, and I
04:36imagine if you put enough Frequent/Intense they'll just reject it.
04:42And here's where we upload stuff, so our large icon is going to go here and I'm
04:46going to select Choose File, going to go ahead and upload the 512.png file
04:56that's our large icon and that's used for the Store and there is that.
05:01And now our screenshot at least one screenshot is required and here is my screenshot.
05:09Here is our -- this page intentionally left blank screenshot and now I can just
05:13click on Save and it's in Prepare for Uploads state.
05:18There is a number of different states, and the ones that we're concerned about here.
05:22And we have Prepare for Upload, and you can click on View Details, and you can
05:26go back, and you can edit it if you want to, you can change your metadata.
05:30You can change all kinds of stuff, and you can even come back and do this
05:34after it's in the Store.
05:36And when we are ready to upload, we actually click on this View Details and we
05:42select Ready to Upload Binary.
05:45And we select, I'm going to say No, there is no encryption here and it says
05:50you're now ready to upload.
05:51So I'm going to say Continue and now you'll see that the status is waiting for upload.
05:59So, once the metadata is all set in iTunes Connect and your app is in the
06:03waiting for upload state, then it's time to upload the app using Xcode or
06:08Application Loader and this process is covered in other movies in this chapter.
Collapse this transcript
Submitting with Xcode
00:00The process of submitting your app with Xcode is really very simple.
00:04I'll cover it here and show you how it works, but right now I'm recommending
00:08that you use Application Loader instead.
00:11I found that sometimes submitting with Xcode does not work when it should.
00:15There are bugs related to how it uses data from the info.plist file.
00:18These bugs make the submission process just not work sometimes.
00:23So until the next version of Xcode, I'm just using Application Loader and I'm
00:26recommending that you do that as well.
00:29So here we are in iTunes Connect and we're looking at our app and we can see
00:32that the Status is Waiting For Upload.
00:35And that's the status that we want when it's ready for us to upload the application.
00:40So now we'll go and we'll open our project.
00:42I am going to make a working copy of this project, and you can work on your
00:47actual project if you can, otherwise you can follow along with me here.
00:52Call this working, and I am going to open it in Xcode.
00:56Now you want to make sure a couple of things.
00:57You want to make sure your Bundle identifier is right and because I'm using the
01:00Exercise Files it's not, so I'm going to make sure that it is.
01:07
01:09And you'll also want to make sure that it's properly signed and again if you're
01:14using the Exercise Files, it's probably not.
01:17I am in the Distribution Configuration here, and I'm going to select the
01:22App Store signature.
01:25And I'm going to close that and make sure I have Device and Distribution over
01:31here and that's correct.
01:32I am going to go ahead and Save and I'm going to build.
01:37Make sure that, that build is okay, and there we go, we're fine.
01:41So now all there is to this is we select Build and Archive and we're doing this with Xcode.
01:46This is the Xcode version of submitting.
01:49This is not the Application Loader's version.
01:51So I am going to say Build and Archive and build succeeded, and I am going to go
01:55over here to Organizer and we'll see there it is an Archived Applications.
02:00There is our app that we just built and archived.
02:03So I am going to click on Validate.
02:05I am going to put in my Username.
02:07Your username of course is the email address that you use to login with iTunes Connect.
02:12And I am going to put in my Password and I'm going to say Login.
02:17Now the Identity is iPhone.
02:19We wanted to be iPhone Distribution Lynda Author, and it says that, that
02:23currently matches that so that's fine.
02:25I am going to go ahead and select this one, and the Application is BWDemo 1,
02:29that's great and I am going to say Validate.
02:32And it says it's passed its validation, and can now be submitted to the App Store.
02:36So what it's done is, it's actually looked in the bundle and it's made sure that
02:38everything matches and that it's all okay.
02:41And so I'm just going to say Submit now, and I'll enter this information again.
02:45If you say Remember Password in Keychain, it will it remember it for you.
02:51And iPhone Distribution is right and the app is right, and it's uploading the
02:59application for submission.
03:02And now it has been successfully submitted to the App Store.
03:04I am going to say OK here, and I am going to switch to my browser.
03:08I'm going to try pressing Reload here and it says Upload Received, and we have
03:14successfully submitted this app.
03:16So the submission process with Xcode is really very simple.
03:19For now I'm using Application Loader, and I'm sure I'll be using Xcode again
03:23after it gets fixed in a future version.
Collapse this transcript
Submitting with Application Loader
00:00When you submit your app to the App Store from within Xcode, it's actually using
00:04another utility called Application Loader to do the work.
00:08Here is how you use Application Loader directly.
00:11Here we have our iTunes Connect page for our app and you'll notice that it's in the
00:15Waiting For Upload state.
00:16This is important it needs to be in this state in order to submit it to the App Store.
00:20So now we're going to open up our app in Xcode.
00:22I am going to make a working copy of the application project and call this working.
00:30I am using the one here from the Exercise Files.
00:32Of course, you'll want to use your real app if you can, otherwise you can use
00:37this one from the Exercise Files.
00:39I am going to open this up in Xcode and there is a couple of things I need to do
00:42first, because it's from the Exercise Files, I need to make sure that my Bundle
00:46identifier is right.
00:47And so I'm going to set that up and I am also going to want to make sure that
00:57it's properly signed.
00:59So I am going to come in here and under Code Signing, and I've got my
01:03Distribution Configuration set there and I am going to say iPhone Distribution.
01:08There we have that, and we'll also want to make sure of course the Deployment
01:14Target we want to set that to what it's going to need to be, whatever it is
01:18that you want it to be.
01:19And that's of course, if you've been following along you've already done that.
01:23So now I'm going to make sure it's set for Device and Distribution and it is.
01:29I'm going to build the project.
01:30I'm pressing Command+B to build, Save for building and there it is Build Succeeded.
01:36Now I'm going to come under here under Products and right-click on the application
01:40and I'm going to say Reveal in Finder.
01:43And there it is in the Finder and I want to make sure that it's in the
01:47Distribution-iphoneos folder and that's correct.
01:50Now I'm going to zip it up with the Compress.
01:54So I'm only selecting the app, I'm not selecting the dSYM file.
01:58Only selecting the app, I'm going to say Compress Demo.app and there is the zip file.
02:04So we're going to need that for Application Builder.
02:07Now I am going to come in to another Finder window and I am going to go to the
02:10root of my hard disk, and under Developer > Applications > Utilities I see
02:17Application Loader and I am going to load that up.
02:22And it says Welcome to Application Loader. I'll click Next.
02:25The first time you run Application Loader, it's going to go through its
02:29configuration or what they call the wizard for some reason.
02:34And in subsequent times, it probably won't do this.
02:37You're going to enter your Apple ID which is the email address you use to sign
02:41up for your developer account, and you click Next and then it checks your account
02:48
02:49and it finds the app, there is the app.
02:50I am going to say Next and Have you tested this?
02:54And I am going to say Yes.
02:56Have you tested on binary?
02:57This binary on iOS 4 and so it wants to be able to say it's been tested on iOS 4 in the Store.
03:03And there we are and I am going to choose it.
03:07Now here is where we're going to find it.
03:08It's in our project folder under build and Distribution-iphoneos, and the zip
03:13file that we just created.
03:14So I am going to Open that and I'm going to click Send.
03:19So it's doing all its verification stuff and it's uploading the package to the
03:23Store and it's done.
03:25So I click Next, and You've successfully added it.
03:28Now let's go back to iTunes Connect and confirm this.
03:32I am going to press Reload and there it says Upload Received.
03:36Now it's ready and it's been uploaded to the Store.
03:39It's been received and it's been verified and it's waiting to get into the queue
03:42for the review process.
03:44Now the process of submitting your app to the App Store with Application Loader
03:48is not much different than the process with Xcode.
03:50I tend to do it this way and I recommend that you do too, at least until the
03:54problems with the current Xcode version are fixed.
Collapse this transcript
Checking the status of your app in iTunes Connect
00:00iTunes Connect is used not just for submitting your app, but for
00:04administering it as well.
00:05This is especially useful during the process of waiting for your app to be approved.
00:10Once you're logged in, simply click on Manager Your Applications, and you click
00:15on the app that you're interested in and here you'll see the status.
00:19In this case, the status is Waiting For Review.
00:22You can click on View Details and this will give you an opportunity to edit your
00:27metadata, to edit your images, your screenshots, and you can even change your
00:33End User License Agreement.
00:37The status itself might be in a number of different states with the
00:41amber indicator there.
00:43It can be Waiting For Upload, it can be Waiting For Review which it is right now.
00:48It can be In Review, it can be Upload Received which we saw right after we
00:52uploaded it, or it can be green and it can say Ready For Sale.
00:56It might also be red, it might say Rejected, it might say Removed From Sale.
01:02It might say Developer Rejected.
01:03If you were to reject it yourself you can actually go in here and you can say
01:07"I want to reject this binary" and click there.
01:10It could be an invalid binary, it could be missing a screenshot.
01:14There are number of different reasons that it might be red.
01:17iTunes Connect provides a simple interface for checking on the status of your
01:20app, or for editing your metadata.
01:23And so you'll be using iTunes Connect for a lot of things.
01:27Of course the many other uses for iTunes Connect are documented in
01:31its documentation.
Collapse this transcript
4. Promoting Your App
Understanding the App Store's marketing guidelines
00:00Apple provides a number of resources to help you with your marketing effort.
00:04These resources include trademarks, product images, and the App Store itself.
00:09In order to use these resources they've provided guidelines and these guidelines
00:13like the review guidelines are actually rules that they expect you to follow
00:17when using their marketing resources.
00:20This is the App Store Resource Center and the Marketing Resources tab.
00:25So you'll notice that this is that link down there in the App Store Resources
00:29Center that brings you to this page.
00:31On this page you'll see a lot of very useful resources, you have device artwork
00:37that you can download.
00:38These are these familiar images of the iPhone, the Ipad, the iPod touch, the
00:43Available on the App Store logo, which they call the App Store badge in their
00:47marketing materials.
00:49Here you can download the guidelines for using these marketing materials.
00:54This is a PDF document.
00:56It's only about 9 pages long. It's not very big.
00:59But it is really, really useful.
01:01It's not just the rules that you have to follow in order to use their
01:04marketing resources.
01:06It actually contains a lot of experience and a lot of success in marketing.
01:11Apple is one of the most successful marketing companies ever and all of that
01:16experience is right behind you.
01:18They want to sell your app as much as you do.
01:22They want to sell as many copies of it as you want to sell and maybe even more.
01:26And they're going to do everything they can to help you do that.
01:29It's a really good idea to follow their guidelines, because they're experience
01:33in this selling things is some really, really great experience to benefit you.
01:38So in using the App Store name and badge, there's a few things that we need to keep in mind.
01:44One is that the name of the App Store is APP STORE.
01:47It's two words, both words are capitalized, and of the word The is not actually
01:52part of the trademark.
01:54You can use The in front of it, because it is a proper noun.
01:58But you won't be capitalizing The, you're going to be capitalizing just APP and STORE.
02:02Some of these things seem really persnickety but the truth is, is that this
02:05really helps in marketing to have a lot of consistency in the names of things.
02:09Remember, familiarity, it makes people feel comfortable and when they're
02:13comfortable, they tend to buy stuff.
02:15So using these trademarks in a consistent way is just going to help you sell more apps.
02:21The badge itself must be less prominent than your company name and your product names.
02:26It must have air around it about 25% of the size of the badge.
02:31You must have on your web page, for your app, you must have an App Store URL.
02:37Here's how you make a URL;
02:38a little link to your app on the App Store.
02:42This is an app on the iTunes App Store, and you'll notice this is my app. This is BW RSS.
02:49This is an app that I built for another course here on lynda.com about building
02:53iOS, data driven iOS applications.
02:56You'll notice that there's a link here where you can download it.
03:00Right next to that link is this little arrow.
03:02When I click on that arrow, I get the Tell a Friend, Add to Wish List, Copy Link.
03:08This one here, the Copy Link, when I click on that I will get a link copied
03:13in my Clipboard, and if I come over here to my browser and select the URL bar
03:20
03:20and paste it in, you'll notice that it brings me to this page with my app description.
03:26So here's my app on this page and this looks just like the iTunes page.
03:30I click on More, I get all of this stuff expanded.
03:33There's this great little button to View In iTunes.
03:36When I click on that, it'll bring up iTunes.
03:38I'll say OK to this.
03:40It brings up iTunes and it loads up the page with my app.
03:43So that link, Copy Link right there, that's how you get a link to your app in
03:49the iTunes App Store.
03:51Apple provides product images on their Marketing Resources page.
03:55These are a great tool.
03:57You can paste in your screenshot right into the product image and that'll help
04:02you to market and sell your app.
04:04You want to make sure that you use an actual screenshot of your app.
04:07You want to never show the home screen of the device and you want to make sure
04:11that you don't include icons that aren't yours or that are from other apps.
04:15You just want to have those screenshots from your app.
04:19There's also some guidance on how to use the application description and
04:22metadata on iTunes Connect.
04:25You want to highlight features that make your product unique.
04:30You want to be careful in the metadata to use real distinguishing terms, not to
04:34use generic terms like game or utility.
04:37People don't search for that.
04:38The metadata is all about what people search for and having them be able to find
04:42your app by searching for keywords.
04:44So you want to use keywords like chess, or backgammon, or space theme, or first
04:49person that describe what makes your product unique.
04:53A good web site and effective use of social media will help a lot in selling more apps.
04:58Social media is becoming more and more important.
05:01You want to stay engaged with your users, post frequent updates on your Facebook
05:05and Twitter feeds, and blog frequently.
05:08Be sure to respond promptly to support requests and bug reports.
05:12This will help your users feel cared for and prevent a lot of negative feedback.
05:16The great advantage of the App Store is that Apple is providing direct access to
05:21their entire iOS market.
05:23They also provide a number of resources to help you direct traffic to the App
05:26Store and to your app in particular.
05:28Apple's tremendous marketing success and experience lends a lot of weight
05:32to these guidelines.
Collapse this transcript
Using the Apple product images
00:00Apple provides product images to help show off your app in its natural habitat.
00:06Images are provided for print and for the web.
00:08Let's take a look at how to use them.
00:10Here on Apple's Marketing Resources page and of course you need to be logged in
00:15as a Developer to get at this stuff.
00:18You'll see the Available at the App Store badging and you'll see all these
00:23different images down here, you've got iPod touch, iPhone 4, etcetera, etcetera.
00:28I've downloaded the iPhone 4 images.
00:32And I've got just one of them here in this Apple Assets.
00:35This is actually the vertical one, and it looks like that and you see it's got
00:39the little reflection at the bottom and it's got the little shine across the
00:42screen and everything.
00:43It's really a very nice image.
00:46So I am going to make a working copy of this.
00:47This is a Photoshop file and it's a little bit of a fancy Photoshop file.
00:51It has Smart layers in it.
00:53I am just going to name this Vert_working.
00:58So I am not really sure if it works in any other image editing programs or not.
01:01But if you have a graphic designer on staff or somebody who you use, chances are
01:05they've got Photoshop.
01:07So I am going to go ahead and open this up in Photoshop.
01:09I am just going to move this over here.
01:13And you'll notice that this one here it says, Open to Replace Screen.
01:16So when I double-click on that, this is one of the Smart layers. So I say OK.
01:20And here is the place where you'll replace the screen.
01:24So one thing that I do because at least in this particular version of Photoshop,
01:29this is CS5, I like to put the guides over here to help me have the image
01:35snapped to the right place.
01:37Because it doesn't always do that exactly right if I don't. And now I am going to
01:43go ahead, I am going to open up our screenshot.
01:46Now here in the Screenshots folder, in Chap04 in our Exercise Files, you notice
01:51I've got two images.
01:52One of them is the screenshot that we submitted to the App Store and this does
01:56not have the Status bar at the top.
01:59And then the one that does, this is the original screenshot as we copied over
02:03from the iPod touch.
02:05So I am going to go ahead actually and open that one.
02:09Because of the size of the screen you can use the other one;
02:12you'll need to do a little bit of creative cropping.
02:15It's certainly doable.
02:16I'll open this with Photoshop.
02:18But this is easier for right now at least for our purposes.
02:21I am going to select the entire image with Command+A, and Command+C, I am going to copy it.
02:25And I am going to come back over here to the Your Screen Here and paste it in.
02:31And you'll notice that it's a lot smaller.
02:33Because this is a marketing image it's actually very large and it can be
02:36scaled and everything, and I am just going to stretch this out to fill the entire space.
02:44Some people have noticed that the Aspect Ratio is a little bit off in this
02:47particular version, the iPhone 4 version of the product images, and yet, people
02:52are using them anyway.
02:53So I save this Smart layer and press Command+W to close it, and I'll close the
02:59copied image there as well and you see that there it is fitting nicely inside of the phone.
03:04You see the shine goes across it.
03:07I am going to turn off this Black Status Bar and I am going to turn on the White
03:10Status Bar, and that'll give us the 9:41 and the 3G.
03:14It's just you know, the little iPhone thing.
03:16I am going to zoom this to Actual Pixels here so we can see it a little bit better.
03:20So this is starting to look exactly like a nice iPhone product image.
03:24You can't really see the reflection at the bottom here.
03:27If I go ahead and create a layer, and bring it down here to the bottom, and fill
03:32it with white, and then you can see that reflection down there.
03:36Because of how smartly this Photoshop file was made, you can make this
03:41background any color that you want or any pattern that you want, and it will
03:45still show that shine really nicely.
03:48And all the Alpha layers are just right to make this a really beautiful image
03:53against any background whatsoever.
03:55Also with this very white screen it's hard to see the shine.
03:59But if I change that a little bit, I'll just bring down the Opacity on a
04:05little bit so its got little more gray in it, and now you can see that shine
04:09going across the screen.
04:11So what we have here is a really beautiful product image.
04:15It's very nicely crafted.
04:17This is one of the things that Apple just does really well.
04:19They make great products and they do a great job at most everything that they do.
04:24But they actually truly excel at marketing.
04:27Any opportunity you have to use their marketing tools, to use their marketing
04:31advice, is just going to help you sell more product.
04:34So Apple provides easy-to-use product images for you to use in your
04:37marketing materials.
04:38These images provide a very nice view of your app at work, for your web site, or
04:43for your print uses.
Collapse this transcript
Conclusion
Goodbye
00:00In this course my goal was to give you a good understanding of the process of
00:04submitting and managing an app in the App Store.
00:07I've covered the App Store Review Guidelines to improve your success in having
00:10your app accepted, the Mobile Human Interface Guidelines to improve the quality
00:15of your app, the app bundle, the graphical assets, and Apple's marketing
00:19materials so you can successfully submit your app to the App Store and manage
00:23your app once it's in the Store.
00:25I strongly suggest that you get familiar with the iOS Dev Center.
00:29Apple has provided a great deal of documentation not just on the App Store, but
00:33on iOS Development in general.
00:36The App Store represents a marvelous opportunity for developers, large and small,
00:40to have direct access to one of the largest and fastest growing markets in history.
00:45I hope this course has helped you to have better success in the App Store and to
00:49take full advantage of this incredible opportunity to bring your app to market.
Collapse this transcript


Suggested courses to watch next:

iPhone SDK Essential Training (2009) (6h 52m)
Simon Allardice

Objective-C Essential Training (6h 35m)
Simon Allardice



Are you sure you want to delete this bookmark?

cancel

Bookmark this Tutorial

Name

Description

{0} characters left

Tags

Separate tags with a space. Use quotes around multi-word tags. Suggested Tags:
loading
cancel

bookmark this course

{0} characters left Separate tags with a space. Use quotes around multi-word tags. Suggested Tags:
loading

Error:

go to playlists »

Create new playlist

name:
description:
save cancel

You must be a lynda.com member to watch this video.

Every course in the lynda.com library contains free videos that let you assess the quality of our tutorials before you subscribe—just click on the blue links to watch them. Become a member to access all 98,755 instructional videos.

start free trial learn more

If you are already an active lynda.com member, please log in to access the lynda.com library.

Get access to all lynda.com videos

You are currently signed into your admin account, which doesn't let you view lynda.com videos. For full access to the lynda.com library, log in through iplogin.lynda.com, or sign in through your organization's portal. You may also request a user account by calling 1 1 (888) 335-9632 or emailing us at cs@lynda.com.

Get access to all lynda.com videos

You are currently signed into your admin account, which doesn't let you view lynda.com videos. For full access to the lynda.com library, log in through iplogin.lynda.com, or sign in through your organization's portal. You may also request a user account by calling 1 1 (888) 335-9632 or emailing us at cs@lynda.com.

Access to lynda.com videos

Your organization has a limited access membership to the lynda.com library that allows access to only a specific, limited selection of courses.

You don't have access to this video.

You're logged in as an account administrator, but your membership is not active.

Contact a Training Solutions Advisor at 1 (888) 335-9632.

How to access this video.

If this course is one of your five classes, then your class currently isn't in session.

If you want to watch this video and it is not part of your class, upgrade your membership for unlimited access to the full library of 1,899 courses anytime, anywhere.

learn more upgrade

You can always watch the free content included in every course.

Questions? Call Customer Service at 1 1 (888) 335-9632 or email cs@lynda.com.

You don't have access to this video.

You're logged in as an account administrator, but your membership is no longer active. You can still access reports and account information.

To reactivate your account, contact a Training Solutions Advisor at 1 1 (888) 335-9632.

Need help accessing this video?

You can't access this video from your master administrator account.

Call Customer Service at 1 1 (888) 335-9632 or email cs@lynda.com for help accessing this video.


site feedback

Thanks for signing up.

We’ll send you a confirmation email shortly.


By signing up, you’ll receive about four emails per month, including

We’ll only use your email address to send you these mailings.

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

By signing up, you’ll receive about four emails per month, including

We’ll only use your email address to send you these mailings.

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked