Video hosted by Apple at devstreaming-cdn.apple.com

Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: wwdc2011-512
$eventId
ID of event: wwdc2011
$eventContentId
ID of session without event part: 512
$eventShortId
Shortened ID of event: wwdc11
$year
Year of session: 2011
$extension
Extension of original filename: m4v
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: [2011] [Session 512] What's New ...

WWDC11 • Session 512

What's New in App Publishing With iTunes Connect

Internet & Web • iOS, OS X • 41:45

The iTunes Connect portal provides a variety of tools for managing all aspects of your app publishing lifecycle. Understand the procedure for publishing your iOS or Mac OS X app, and see how iTunes Connect has evolved to help you manage and test new features such as subscriptions, iCloud Storage, and Newsstand. Learn best practices for pre-submission testing, discover common reasons for app rejection, and see how to follow up with Apple through the App Review resolution center.

Speakers: Aloke Bhatnagar, Ricardo Cortes, Jason Fosback, Max Muller, Paul Turner

Unlisted on Apple Developer site

Downloads from Apple

HD Video (214.4 MB)

Transcript

This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.

All right, let's get started. So my name is Max Muller. I run the Digital Supply Chain Engineering group, responsible for iBooks, iTunes, as well as the app stores. It's my group's responsibility for building the infrastructure so that you can get your great applications onto the app store. Now, before we begin, I would like to first welcome our Mac OS X developers.

We launched the Mac App Store this past January, and since then it has now grown into be the largest Mac software store in the world. Now in years past when we've done this session, we've always started with the basics. We've looked at how do you set up an account? How do you publish an application for the first time?

Well, we now have over 425,000 apps live on the app store, so we're gonna assume that this audience is already fairly familiar with the basics. If, however, you would like to review the basics, I'm gonna refer you to last year's session, which is session 310, which is App Publishing with iTunes Connect. You can get to it on developer.apple.com/videos.

So with the training wheels off, let's look at what we're going to cover today. First, we're going to go over what is new or updated related to contracts, Game Center, in-app purchases, App Review Resolution Center, iTunes Connect Mobile, as well as Application Loader. Then in the second half of the session, we're going to look at how you enable your application to take advantage of the new features of iCloud, as well as Newsstand. And finally, we'll wrap it up with some best practices and common pitfalls. So dive in right in.

First up is contracts. On Monday, we updated the iOS program license agreement. This added support for the iOS 5 features for iCloud, as well as Newsstand. Monday, we also updated the Mac Developer Program License Agreement, set it support for push notifications, iCloud Storage, We also updated the Mac OS X Schedule 2 agreement to add support for in-app purchases. If you'd like to enable your Mac applications to take advantage of in-app purchases, you need to log in to iTunes Connect, select the Contracts tab, and agree to the new Schedule 2 agreement.

And that's it for contracts. Next up is Game Center. Game Center was introduced in iOS 4. In the last nine months, we now have over 50 million users. It has been an absolute home run. So we have two things we wanted to mention to you about Game Center today. The first are leaderboard icons. This allows you, the developer, to to provide icons for each of your leaderboards. The image must be a 512 by 512 image in the standard JPEG, TIFF, or PNG format. You can provide a different leaderboard icon for each of your localizations.

and your leaderboard icons will start to show up in iOS 5 Gain Center. This is what it looks like to add a leaderboard icon to one of your localizations. And here, we now list all of your icons for all the localizations of a given leaderboard. This is what it's going to look like on the device. It's on the left-hand side here. We'll now display all of your icons for the localization. It's being displayed.

Next up for Game Center are min and max values for your leaderboards. This allows you, the developer, to control the limits on leaderboards. Helps prevent the gaming of leaderboard scores. Scores that are submitted outside of the range that you've specified will automatically be deleted and not counted in a leaderboard. And again, the min and max values must be assigned 64-bit integer.

Looking at this in terms of when I set up a leaderboard, I now have the option to specify a score format. Here I've set up my level one leaderboard, and I've specified I had a range of zero to 1,000. Any leaderboard scores that are submitted outside of that range will not be included.

And that's it for Game Center. Next up is in-app purchases. We added in-app purchases to iOS 3.0. In the past two years, in-app has grown to represent a significant portion of the revenue that our developer community generates. If you look at the top grossing applications on the App Store today, of the top 25 applications, 14 of them are free and generating all of the revenue through the use of in-app purchases.

With that in mind, we have significantly overhauled the iTunes Connect workflow for managing in-app purchases. We've improved the layout, added searching. We've streamlined the sign-off process, the developer approval process. And finally, for those of you dealing with large numbers of in-app purchases, we've given you the option for a mass submit.

To get to all of your in-app purchases, you now need to go through your application and click on the Manage In-App Purchases link on the upper right-hand corner. Here you see we've now streamlined the addition and removal of localizations. So I was giving you a one button submit when inspecting a single in-app purchase item to submit it for review.

And for those of you that have lots of in-app purchases for a given application, I'll give you a simple list page here where you can search inside your in-app purchases, sort them, as well as select given items, and with one click, submit all of the selected items for review.

Next up on in-app is our auto-renewable in-app purchase type. We launched this a few months back with the daily, which enables you to add full subscription support to your applications. iTunes automatically handles all of the subscription renewal management for you. And we built a nice interface in iTunes as well as on iOS. We allow a customer to see all of the subscriptions that they currently have outstanding.

We also allow them to move between the different subscription durations. They'd like to move from a one month to a one year, or be down to a one week subscription, or to opt out of any of their subscriptions at any point. The duration options that you have are seven days, one month, two months, three months, six months, and a year. And right now, the auto-renewable subscriptions are only available on iOS.

A few other things to point out about auto-renewable subscriptions. One is that it is your responsibility for checking the receipts that come back through the StoreKit API for determining if a subscription is valid. When checking a receipt for an auto-renewable subscription, you'll be using a shared secret that you generate in iTunes Connect. You'll pass that shared secret along with the receipt to our servers for validation.

Also, if you are a publication, we offer the option for a customer to opt in to share their contact information with you. If you choose, you can also offer a marketing opt-in incentive. What this is, is this is an additional bonus duration on the first subscription period, that you can offer to a user to incentivize them to share their contact information with you.

For instance, if you set up a one-year subscription, you might set up a three-month marketing opt-in incentive. What this means is on the first time the customer purchases and chooses to subscribe to the one year, they would actually be getting 15 months, and after that point, the renewal would happen on a 12-month basis.

A few other things to point out about the marketing opt-in incentive is that it's your responsibility for displaying the information about the marketing incentive in your application UI. As part of the store kit dialogues that come up for subscribing to a subscription, we do not mention the marketing opt-in incentive.

Also, if your application is collecting or has the option of collecting personal contact information, we do require that you specify a publisher's privacy URL, which is going to be shown on the customer's invoice. So what it looks like to add a new auto-renewing subscription to your application, you're going to log in to iTunes Connect, click on the Manage In-App Items, and Add a New In-App Item. For this, we will now select the Auto-Renew subscription.

Now, the first part you're setting up is the family of your subscription. The reference name at the top, in this case, is the Touch Fighter Strategy Guide. We'll provide the different localizations for what the subscription is. At the bottom part here, we'll actually be setting up the different durations. It's important because these different durations are the actual in-app items. In this case, we set up a seven-day and a one-month item.

Each one of them have their own product identifiers. We make a store kit call in to get the available products. In this case, we're going to be getting back exactly two products. Here's what it looks like when looking at inspecting our one month duration. In this case, we have chosen to offer marketing opt-in incentive of seven days. And again, when setting up our item for the first time, we're going to be asked to provide a privacy policy URL.

For validating receipts, you'll also be asked to generate a shared secret. Note the same shared secret can be used to validate all receipts within a given developer account. You have multiple applications that are all taking advantage of auto-renewing receipts or the auto-renewing in-app. You only need one shared secret to validate all those receipts.

And finally, here's what it looks like on the iPad. In this case, you can see that they have set up within the same subscription family two durations, a seven day as well as a one year. They chose to offer more duration options. They would all be listed here. Note that the user can move between any of those different subscription price points or turn off the auto renew at any point. And now to give us a demo of the new in-app purchase setup in iTunes Connect, I'd like to bring up Aloke.

Hello, everyone. I'm Aloke Bhatnagar, and I'm the engineering manager for iTunes Connect. As Max mentioned, we made quite a few changes in the in-app purchase workflow, and I'd like to walk you through some of those. So let's sign into iTunes Connect. One of the first things that you'll notice is that the Manage In-App Purchase module has gone from the home page. We wanted to offer you a single, streamlined way of managing your in-app purchases. And the way to do that is to go to Manage Your Applications.

And you can either search for your applications. By the way, if you haven't noticed yet, we've added search as your type for your application, for those of you who have large catalogs. Or you can click on your application from your recent activity list. You click on the blue Manage In-App Purchase button, and you're brought to a listing of current in-app purchases on this screen. Again, you can search as you type over here. It doesn't have to be the beginning of the string. You can search for substrings.

And again, as Max mentioned, for those of you who have large in-app purchase catalogs, we've allowed you to mass submit now. You can do that either by checking the boxes over here and hit Submit for review. Or you can use the Select All and Deselect All buttons as you please.

To be able to inspect an in-app purchase, you can click on one of them. And you can either submit from review from here. We can edit various pieces of the in-app purchase, like the reference name. We can add a new localization. Edit an existing localization. Change the pricing. And this one already has a screenshot, so we can go ahead and change the screenshot if necessary.

Now, Max mentioned that we've recently added auto renewables as an option for all developers. The first step you'd have to use to use auto renewables is to be generating a shared secret for a seat validation. So you click on that link and click Generate. There you go. The shared secret is generated for you, and you can use that in your receipt validation. So let's go ahead and create a new auto-renewable. Create new. Choose Auto Renewable Subscription. Add in a reference name. So for this, I'm adding a game strategy guide for Touch Fighter. Add a localization. Just going to add the English for now.

Let's save. And we need to add durations. Select duration. For now, let's just choose one month. Add in a product ID. You can choose to offer a marketing opt-in incentive. If you choose yes, you get an incentive duration, which is a function of the duration that you chose earlier.

And then you have the standard cleared for sale and the price tier buttons. That's price at tier one right now. Click Save. Oops. Let me make the product ID a little more descriptive. So as you can see, we've added this in our purchase over here. Let's go ahead and add another duration. Say one year.

offer a marketing opt-in incentive. Now you can see the incentive duration options changed because I had a different duration up above. Select a price tier. Let's save over here. And you can see it added two in-app purchases over here with the options I chose. When you create an in-app purchase, it goes into waiting for screenshot initially. Now let's assume that I've gone and tested all these in-app purchases in Sandbox. Let's go ahead and hit Save and add the screenshot later.

So as Max mentioned, each duration contributes to one in-app purchase. And you can see it's created two in-app purchases, one for one month and one for one year. If I wanted to change anything, I could just click Edit as I did before, or I could hit Delete to delete an in-app purchase that I didn't want anymore. And with that, I hand it back to Max.

All right, thank you, Aloke. All right, every year we try to make the app review process smoother, more transparent, and give you more information if your application happens to get stuck. With that in mind, this last year we've introduced the App Review Resolution Center. This allows for centralized access to all rejection information. Also allows Apple to provide you screenshots or stack traces of your application that hit a problem as part of the review process.

This allows you, the developer, also to give the app review team back information on any issues that they have highlighted. And it also gives you a nice central view where you have an entire history of your app version's issues that can be reviewed at any time. Now to get to the app review resolution center, and again this should not be a goal for anybody in the audience, but in case you have seen, in case an update of yours does get rejected, at that point the resolution center link will appear at the top.

Click on the resolution link. We'll take you in to an entire version history for every single binary that has been uploaded. In this case, we uploaded a binary on June 6. It looks like it crashed as part of the app review process. And the app review team has provided us with some notes for essentially what happened when they triggered the crash, as well as providing a stack trace.

Now once we've corrected this issue, then I can upload a binary and log back into the resolution center and provide feedback back to the app review team. In this case, it looks like we've corrected the bug, performed some clean unit tests, and resubmitted the binary for review. Now all of this information will then travel back to the app review team and be ready for them once they start to review the new updated binary.

Next up is iTunes Connect Mobile. We released iTunes Connect Mobile last year at WWDC. Since then, we released a 1.1 version, which added iPad support. And last week, we released an iTunes Connect Mobile 1.2, which added push notification support. This enables you to get push alerts for any app state transitions, so when your app moves to ready for sale or pending developer release, or in the unfortunate case, if you need to visit the App Review Resolution Center.

To look at it, this is what getting a push notification for a state transition looks like on the iPad. Here, the app is now ready for sale. If you haven't downloaded iTunes Connect mobile yet, you can log into iTunes Connect, and there's a link at the bottom of the page.

That's it for application. Next up is Application Loader. Application Loader ships as part of the Xcode suite. It's found in the Utilities folder, and it's one way that you can use to deliver your binaries to App Review. Now, one of the pieces of feedback that we've heard from all of our developers is that the creation of many in-app items within iTunes Connect is a rather time-consuming and laborious activity. So with that in mind, we've created a new in-app purchase metadata workflow right in Application Loader.

This enables you to mass import in-app purchase items from a tab-delimited file. And once you have all of them ready, you can then either submit them ad hoc or with a binary. And this version of Application Loader is coming for iOS and OS X later on in the fall.

Here's what the new login page looks like for Application Loader. Here's what the new home page looks like. And again, if you were to regularly deliver a binary, this would be the Deliver Your App link. However, you can now create a new package. And here we'll now select Create New in App Packages.

Here will be now displayed all of your applications, as well as the number of in-app items that they currently have. You'll select the application that you wish to add in-app items to. Once you have imported in all of your in-app items from a file, or created them in the workflow interface, they'll all be displayed here. You can inspect them, make any changes you want, and with one click, submit them for review. What I'd like to do now is bring up Jason Fozback to give you a demo of the new application loader.

Jason? - Morning everyone. Just gonna give you a quick preview here of what we've been working on here for a while for the new version of Application Loader. So this is what Max was just showing you, the new landing page for Application Loader when you launch it. And you can see there's a Deliver Your App button here. So for those of you that have uploaded applications in the past, this will look very familiar to you.

So we've also added this new feature, which is to create a new package. This will allow you to-- Manage your in-app purchases from an existing app. In other words, load them into this tool so you can work on them offline. Manage the screenshots, change the pricing in mass, whatever you want to do.

But we've also added this feature here, which is new from file. So we support creating a bunch of in-app purchases from a tab-delimited file. So you can use a workflow to generate those yourself, or for example, you can use numbers, or any other spreadsheet. Anything that will write a tab-delimited file will work.

So this is a quick example here of what this might look like. You can have all of your information here in the tab-delimited file. The reference name, what type it is, cleared for sale. You can specify the pricing. We even allow you to do your localizations right here within the file.

So that's an example of what that looks like. So let's go ahead and walk through that. Click on New from File here within Application Loader. Click on that tab delimited file, and open it. So you see this editor comes up, which allows you to see what you just imported. You can look at all the different things. You can ad hoc edit them here within the tool. We support unlimited undo and redo.

Pricing will allow you to edit your pricing here within the tool. For those of you that do a lot of pricing work within iTunes Connect, this should look very familiar to you. and we'll allow you to edit your languages. So for example, if I wanted to add Italian, I could go ahead and click there, add some information here. Or, realizing I don't speak Italian, oops, I can undo that.

And then, as you're in the process of editing, and you make a mistake potentially, When you go here to the delivery pane, we'll actually detect that something is wrong. You can double click on that error, and we'll drill you right down in the user interface of where that problem exists. So I'll go ahead and undo that.

And one of the other things that's really convenient here is if you have thousands of in-app purchases potentially, and you need to match up the screenshots with all of those in-app purchases, you can hit this single button here. And if you name your screenshots with your product identifier, in one shot, you can go ahead and either select a bunch of those all at once, or just select a directory of those screenshots. And we'll go ahead and match those up with one quick operation in the tool.

And then you can go ahead and send that to us up on the store. With that, I'll go ahead and turn it back over to Max. Thank you, Jason. So again, coming later on this fall, watch for that. Now what I'd like to do is to turn it over to Ricardo Cortes to walk us through some of the new iOS and Lion features. Ricardo? Thank you, Max.

Five and Lion features iCloud Storage and Newsstand. iCloud Storage, introduced at the keynote earlier this week, is new for iOS 5 and Lion. It enables cloud storage of app document data. There are two types of cloud storage within your apps. There's documents and key value data. They work across iOS and OS X apps.

For example, if I have Touch Fighter, an OS X app on the desktop, and I have Touch Fighter Mobile, these apps can share a single document space or a single QValue Datastore. In terms of setup and configuration, you first need to enable cloud storage in the iOS developer portal.

And there are two new relevant entitlements, one for documents and one for key value data. For documents, we have Calm, Apple, Developer, Ubiquiti, Container identifiers. And for key value data, Calm, Apple, Developer, Ubiquiti, KB Store identifier. Both are governed by the provisioning profile. It's important to note, you can implement one or the other, either documents, key value data, or none of them.

You enter the entitlements and values in your entitlements.plist, and each of them is prefixed with a team ID, which is also available in the iOS developer portal. An example for document storage of these new entitlement key values. For the Ubiquiti container identifiers, this denotes the identifiers used by related apps to write to the same document storage space.

And it's also important to note that these are identifiers that are only from the same developer. You can't use your friends' or your buddies' identifiers. An example below, you see I have COM Cyber Interactive Touch Fighter OS X for my desktop version, as well as COM Cyber Interactive Touch Fighter Lite. Both of them prefixed by the team ID. The presence of both of these identifiers then allows both of them to write to a single document store.

With key value data, there's one identifier there. This identifier is used to access the default iCloud key value store. Again, the value for the identifier is prefixed by the team ID available in iOS developer portal. Here I have com, cyber interactive, touch fighter, store. In terms of document storage, there's one new Info.plist key.

This is the NS Ubiquitous Display Set. This defines a logical grouping for iCloud's storage display purposes in the Settings pane. We'll see a screenshot of this in a second that'll really drive it home. These must match display sets that are configured in iTunes Connect. These are new controls being added for iCloud.

And we recommend reverse domain syntax. So for example, com/apple/iwork/keynote for iOS and for OS X. Here's what the management page for document storage looks like. You can see I have Keynote at the bottom, numbers and pages, and Keynote for iOS, say for example, and OS X are sharing a single document store. Document storage rolled up with a single value, 98.2, I believe. Yes.

Here, you can drill down in one of those applications and see the documents, and you can manage them on the device by deleting them. New for iTunes Connect, we have a new Manage Display Sets interface. Under Manage Applications, you go to the iCloud section and click Manage Display Sets.

Here you'll see the display sets you've already set up. I have Touch Fighter, Calm, Cyber Interactive. Sorry, I have Touch Fighter, the reference name, and Calm, Cyber Interactive, Touch Fighter as the display set ID. Again, remember this must match the value that's supplied in the NS Ubiquitous display set. Here, I'm setting up a new one, reference name and display set ID. And I'm allowed to localize in the languages that we localize the App Store.

In this example, I have a reference name of Touch Fighter, again, the display set. And I have two apps that are attached, Touch Fighter 2 and Touch Fighter 3. The presence of these two apps allows them to write to a single document store. And with that, I'd like to bring up Paul Turner, Engineering Manager, iTunes Store, Content Operations, who's going to walk you through the new iCloud Storage controls in iTunes Connect. Paul. Thanks, Ricardo.

Morning everyone. How you guys doing? Is the coffee kicking in and everything? All right. I actually developed the logistics team that manages the digital distribution of all Apple's own apps. And we have a lot of apps, so we actually use the same tools that you guys do. We are huge fans of iTunes Connect and Application Loader. So we're not only engineers, we're also the users.

I just want to let you guys know, it's an incredible and delicate ballet to produce these tools and services that are ever evolving and available around the world 24 hours a day, seven days a week. And it's actually done out of love. I know. We love our Macs, we love our devices, we love the OS, we love our applications, and we love the applications and content and peripherals that you guys create to complete the experience.

It's pretty awesome. So I just, I'll get sappy for a second. I wanna speak for everyone when I say thank you guys for doing what you guys love, 'cause it enables us to do what we love. So thank you guys. All right, enough of the sappy. I'll do some display sets here.

From our Manage Our Applications page, we're going to go down here to Manage Display Sets. All right, you see we have a couple display sets already set up. We have Fighter and Thunder Runner. All right, we're going to create a new one right now. Add in a reference name here. This is a name only for you. It will not be shown to your users. Now, this display set ID.

Okay, you gotta remember that this display set ID must match the NS ubiquitous display set key that's located in your P list. So let's go over to our touch fighter here. Add that key in. Just get it out of the way. Okay, you can't save a display set without adding a language first, a localization. Let's add a language. Simple. Let's add another one. Let's do French.

We'll hit save. All right, you can see our display set's been set up. Let's take a look, inspect that. All right, so our display set's been set up, and it's waiting to have applications that are uploaded that reference that display set ID in its Info.plist. I could probably make my French here a little bit nicer. So you can just click on it and edit it right there.

Check out a display set that actually already has applications attached to it. Let's go ahead and take a look at our Finder. You see here in Fighter, we have Touch Fighter 2 for Mac and Touch Fighter 2 for the iOS attached to this display set. I love the display set feature.

It's just one of those little icing on the cake features that creates a really clean cloud experience for the user. And I really love that we're doing these little things. All right, we click Done. I just want to let you guys know and show you one little feature that's over in your portal. Let's go to the dev center here.

OK, you go over here to the provisioning portal. And we'll go to our app IDs. I just want to show you guys, when you're setting up your applications in the developer portal, there's a new flag that you set, Enable for iCloud. Click that off, and you click Done right there.

Okay, back to our display sets. If I'm no longer using a display set anymore, I can delete it very easily right here. You cannot delete a display set if there are approved versions of your applications that reference that key in their Info.plist. And that's all. That's display set. It's pretty easy. Aloke's team did a great job. Thank you guys very much. I'm going to bring back Ricardo. Enjoy the bash tonight.

Thank you, Paul. One thing to note, the controls you just saw on iTunes Connect will be available in the impending months as we near iOS 5 GM. Let's talk about Newsstand. Newsstand is new. for iOS 5, and was also announced on Monday at the keynote. There's a new area in the App Store specifically designed for our subscriptions and publications.

It's based on a collection of classes called the Newsstand Kit, and it enables dynamic delivery of your asset covers and issue content. Delivery of that content is backed by a new push notification model. Upon receiving the push, the app communicates in the background to developer servers to download the content. This is important, as it allows your app to be ready with the new content upon launch of the new publication or periodical that you want to deliver to the customer. An ongoing issue cover content is delivered from the publisher service as well.

You supply the default issue cover art in iTunes Connect. Here's what Newsstand looks like. The top right there, you can see a little store button that'll take you into the store. You can browse for more publications or newspapers. In terms of setup and configuration, there are two new Info.plist keys. There's UI Newsstand App, a Boolean, and UI Newsstand Icon, which defines the look and feel of your binary artwork.

I'm going to go into a very quick example, but if you want to dive a little bit deeper into Newsstand, there's a presentation right after this in Russian Hill, I believe, building Newsstand apps. Here, you see an Info.plist that has CFBundle icon files, a new entry, a new key for Newsstand.

Underneath it, the UI Newsstand icon, where I have a single News 1 X PNG, and I've chosen a type of newspaper and an edge, a bottom, to allow my cover art to be displayed like a newspaper in Newsstand. So when my new cover art is fetched from the servers, I go to Newsstand, I go to load it, not only do I have the latest cover art for the issue, say June 2011, but I also have it looking like a newspaper.

There's going to be an optional developer supplied RSS feed that we will support for dynamically updating issue metadata and artwork, as well as a set of iTunes Connect controls to see current and past issues that you're delivering to your customers. Both the RSS feed and iTunes Connect controls are coming later this fall. And now, to talk about some app best practices and common pitfalls, I'll bring Max up to stage. Thank you.

All right, thank you, Ricardo. Now, I'd like to do is just kind of walk you through some best practices and common pitfalls. These are all issues that applications are running into, literally some of them hundreds of times per week as part of the app review flow. Hopefully, a little bit of an ounce of prevention here. The first is functionality.

As part of the app review process, we're looking at the description of your application, how you are marketing your application to customers, and we're ensuring that the functionality that you're advertising actually matches the functionality of your application binary. If it doesn't, we're going to ask you to correct that. Next up is metadata. Here, we're looking at all the metadata that you provide, and we're looking to see if you've provided any that would be considered inappropriate. For instance, putting testing 123 or coming soon in your description is not going to be allowed onto the App Store.

Next up is crashing. Believe it or not, one of the top reasons an application does not make it through the app review process right now is because it crashes either on launch or it crashes during the review process. So please, please make sure that you've thoroughly tested your applications before you submit them for review.

Next up would be considered beta or trial. Beta or trial applications are not allowed within the App Store. Next is what we'd call an ad hoc distributed application. This would be a limited utility application. For instance, if I were to write an application that only controlled the lighting of my house, while interesting to myself, it's probably not interesting to a broader audience.

Next is the icon mismatch. In iTunes Connect, we ask you to provide a large 512 by 512 version of your icon. And when you've submitted your binary to us, we then extract the smaller icons from your binary bundle. Now, in different places within the store, we'll be using the large artwork, and in other places, we'll be using the small artwork. We always want to make sure we have a consistent user experience when flowing from page to page. So we want to make sure that your icons look very similar.

Next up is name inconsistency. When you set up your application in iTunes Connect, you'll be providing a name. And when you upload your binary, we're going to be comparing the name of your binary to the name of the store. If you set up the application in iTunes Connect and called it Bananas, and yet when you uploaded your application, the name of your application when installed on a device is called Apples, that's going to be a problem. We're going to ask you to correct one of them. Next up will be advertising. This is where an application is literally providing no value, but just being used for marketing or advertising purposes.

Next is cell bandwidth. If you're using any of the HTTP live streaming APIs, you want to make sure that you're correctly accounting for how to handle them on a cellular network. There's guidelines out there, and you want to make sure that you've tested those guidelines. Next is what we refer to as the iPod Touch issue.

This is where if you're using features like video cameras or cellular functions within the OS, You need to make sure that you're correctly handling the case where you're disabling it or prompting the user to disable these different functions. If you don't want the application to get onto those devices, there's something called device capabilities, where you can actually say that your application requires one of these capabilities. And then your application will not actually be able to be installed on any device that doesn't support those capabilities.

Next up is the Apple Trademark. If you're using the Apple Trademark, you want to make sure that you're abiding by the guidelines for using that trademark. For Lion developers, one of the guidelines that we're pointing out for Lion is the app signature. For the newer functionality that we're adding in terms of push notification, as well as in-app purchasing, requires a valid signature of your application.

If you're doing anything on the first launch of your application that might break the signature if you're starting to put stuff in your application bundle that wasn't referenced within the resource, there will break your application signature, at which point your app will stop receiving push notifications and will no longer be able to make in-app purchases.

Next up for iCloud Storage. iCloud Storage is for user-generated content. You should not be putting anything that you download to cache locally on the device. For instance, if you're downloading a bunch of maps or other what might be deemed reference data that could be redownloaded at a later point, we're going to ask you not to store any of those files within the iCloud Storage. Next is Lion testing. For this, the Mac App Review team is switching to reviewing all applications under Lion. So for new applications being submitted, or for updates to existing applications that are being submitted, you want to make sure that you have thoroughly tested that application under Lion.

Next would be app consolidation or app spamming. This is where you'll be submitting large numbers of applications where all you're doing is basically modifying the content of that application. This is a great use for in-app purchasing. So when this happens, what we'll be doing is we'll be taking all those applications, handing them back to you, and asking you to consolidate them to a single application and use in-app to unlock that different content. And finally, it bears repeating one last time that crashing really is one of the top reasons that an application does not make it through the app review process. So please, please, please make sure you've thoroughly tested your applications before submitting them.

So in summary, you want to make sure that you're getting ready for the new iOS and Lion features, namely in-app purchases for Lion. Newsstand is coming for iOS 5. iCloud Storage is coming for iOS 5, as well as Lion. Binary submissions for Lion are going to be coming soon. Watch for the announcements. And we'll be taking iOS 5 submissions later on this fall.

For more information, Bill Dudney is the Application Frameworks Evangelist. Additional documentation, the iTunes Connect Developer User Guide covers everything that we've covered today in far more detail. For videos of past presentations, you can view developer.apple.com/videos. And again, we always welcome your feedback on the Apple Developer Forums. Those are related sessions. This morning, there was an in-app purchases for iOS and Mac OS X, iCloud Storage Overview, and storing documents in iCloud using iOS 5. If you missed any of these sessions, you can look for them after the conference ends on the website.