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