This workshop will be retired on May 31, 2020.
Xcode, App Assets and App Listing21:53 with Gabe Nadel
In this workshop we delve into the technical and administrative steps needed to submit your app to the App Store. Learn how iTunes Connect, Member Center and Xcode each play a role in submission, as well as how to prepare you and your team for a successful review and launch.
Now let's head over to iTunes Connect. 0:00 You can find that at iTunesconnect.apple.com. 0:02 It's worth mentioning there's a Mobile App for iTunes Connect. 0:05 But I find that it's best for 0:08 viewing sales data and everything else I just do on the site. 0:09 Here you'll see some general buckets for the tools you'll use most. 0:13 Also up top you'll receive notifications of any new agreements that need signing 0:16 which does seem to happen from time to time. 0:21 Let's go through some of the big buckets. 0:24 As you probably guessed My Apps is where you'll control the specifics severe of 0:26 your individual apps and will circle back to that in a minute. 0:30 App in Linux is where you can view App Store views sessions and more. 0:34 This is a great new addition as until recently you never knew how 0:38 many people were looking at your apps on the App Store but not downloading it. 0:41 As you can imagine having that data makes it much, much easier to 0:45 actually assess your marketing efforts and the effectiveness of your metadata. 0:48 Sales and trends is where you'll go to see sales, download ,and update information. 0:52 You can slice and 0:56 dice the data in a host of useful ways, drill down, and even export your results. 0:57 Payment in financial reports or 1:05 where you go to see how much you've actually earned from your apps, 1:06 how much you're currently owed as well as your recent and next expected payments. 1:09 iAd is where you go for all things iAd which is Apple's advertising platform,. 1:14 Users and roles, this one is important if you want to create iTunes Connect users 1:20 with different permission levels like finance, legal, and marketing. 1:24 Keep in mind this is not where you add members to your development team. 1:27 That happens in the member center itself. 1:31 Agreements. 1:34 That's where you go to request accept, update, and 1:35 view agreements between you and Apple. 1:37 And of course, Resources and 1:40 Help is a critical library for anyone using iTunes Connect. 1:41 Truly, I cannot emphasize this enough. 1:45 There are so many helpful tips and so 1:47 much official guidance, I couldn't possibly cover it all. 1:49 Luckily, Apple has documented this and does a good job of keeping it up to date. 1:52 Okay, let's move on to how you actually prepare to distribute your app. 1:56 You the developer will need a few things. 2:00 Some of them may sound a bit confusing at first but 2:02 we'll define them now and then we'll revisit them later on. 2:04 You'll need an app record, that's created when you log into iTunes Connect and 2:08 register the title and 2:12 some other basic information about the app you plan on uploading and selling. 2:13 You can think of this as the start of your product listing. 2:17 An Apple ID. 2:21 That's simply the ID you used when you registered your developer account. 2:22 Signing Identities. 2:27 This is a public private key pair that Apple issues you via Xcode. 2:28 Certificates. 2:34 These will also be requested by Xcode in safety of your key chain. 2:35 They come in a few flavors, intermediate, development, and distribution and 2:38 you'll also use different ones for iOS and Mac. 2:41 By the way if you weren't familiar with your key chain 2:44 it's where Mac store sensitive information like passwords and certificates. 2:46 You can view its contents by going to Applications >Utilities>Key Chain Access. 2:50 As for provisioning profiles you'll need to, a development profile 2:56 which contains a developer certificate which identifies you as a developer and 2:59 works for building to devices. 3:03 Also, you'll need a distribution profile which contains a distribution certificate 3:05 and identifies you as part of a team and 3:09 allows you to distribute via the App Store. 3:11 Now what I just gave you is an extremely brief description of the code 3:14 signing landscape. 3:17 Will go over to bit more later but 3:18 I've included a link to some extensive documentation below. 3:19 In my experience you needn't become an expert in the stuff to successfully launch 3:23 an update apps. 3:26 However, before long you may hit a mysterious issue 3:27 where delving into the docs will help you untangle exactly what's going on. 3:30 Let's open Xcode. 3:35 If you don't already have an Apple ID then you'll need to create one at 3:38 developer.apple.com. 3:41 Assuming you have a valid Apple ID you can add that by going to Xcode, 3:43 preferences then clicking on the accounts tab. 3:47 Click the plus sign in the lower left and 3:53 then enter the same Apple ID you used to create your developer account. 3:55 Next, we'll request signing identities. 4:04 To do this, click on the Apple ID you just added, 4:07 then the name in the right pane and click view details. 4:10 Then, we'll click the plus sign and select the type of identity we'd like. 4:15 For us, we'll do iOS development and iOS distribution. 4:19 This should generate successfully? 4:44 Though at times you may get an error saying your account needs to be updated. 4:46 If this happens, you should check the member center and 4:50 see if anything needs to be updated. 4:52 If not remove all the Apple IDs listed in the left pane. 4:53 That's over here. 4:58 Quit Xcode and restart it. 4:59 This should allow you to generate signing identities. 5:01 One other note. 5:04 If you had valid identities and profiles prior to Apple's new three in one 5:05 developer license, you may get a vague error when performing this step. 5:08 If so, be sure you've accepted all relevant agreements and then continue. 5:12 Once you're signing identities are generated, 5:16 you wanna export the signing identity by just clicking on the gear. 5:18 Then, be sure to export and save the identity somewhere secure, 5:26 not just on your local machine. 5:30 Next, we'll wanna get our provisioning profiles. 5:35 Mine are already shown here, but you'll wanna click the Refresh button. 5:38 On the lower left, and if you don't already have certificates 5:43 created in the member center Xcode will ask if you'd like them created for you. 5:46 Now let's turn for a moment to the Bundle ID. 5:51 Which is used to uniquely identify a single app. 5:53 The Bundle ID is used in several places as we can see here in the documentation. 5:56 The URL for this documentation is pretty long, but 6:01 you can find it down in the teacher's notes. 6:04 You may have seen the Bundle ID in Xcode, let's go there now. 6:06 If we click on the General tab. 6:12 We see the Bundle identifier right here. 6:14 Now a Bundle ID was created by Xcode when you started your project, and 6:18 by default, it does this by using a reverse domain convention. 6:22 Now I can change that Bundle ID right here in Xcode simply by clicking on the box. 6:26 But you can't simply change the App ID you create in the member center. 6:31 So, be sure to set it there carefully and correctly. 6:35 Also, the Bundle ID is case sensitive, 6:38 which of course is a little surprising since it looks like a URL. 6:41 But don't forget that a straight capital letter or 6:44 two has caused many a developer to tail their hair out. 6:46 In fact let's head over to the member center and see how it's done. 6:50 We go to certificates, identifiers and profiles 6:53 then App ID's hit the plus button. 6:58 And you'll see that we can create an explicit App ID or a wildcard App ID. 7:02 The explicit is used just for a single app. 7:09 Whereas the wild card can be used for several apps. 7:12 If you want to ever have your app interface with services like Game Center, 7:14 In-App Purchase, Data Protection, 7:18 passbook Apple Pay or iCloud, be sure to create an explicit App ID. 7:20 In short creating an explicit ID offers you many more options. 7:25 Both version one point zero of your app and into the future We'll create an app 7:29 here called Fake App 1. 7:33 Down below will enter our actual Bundle ID and reverse domain structure. 7:37 That's com.company name dot fake app one. 7:44 Then you'll need to confirm your App ID And the registration's complete. 7:48 By the way, if you're creating a watch kit app, 7:57 you'll actually create several App IDs. 7:59 And I've provided a link on that process below. 8:01 While we're here, 8:03 it's worth noting all the options you have on the left hand side. 8:04 At times especially when things in Xcode aren't working as you expect, 8:07 it's necessary to come here and inspect what's going on behind the scenes. 8:11 You may find that you need to revoke at it or create some of these things manually. 8:14 One such thing is adding a device for testing. 8:19 We can do this simply by clicking on,devices,and then the plus. 8:22 Here you'll enter the devices name which you can choose freely and the UDID. 8:28 By the way, the easiest way to get a device's UDID is to plug it in, 8:35 open up iTunes, select the device, then click on the serial number. 8:40 When you do the UDID will appear and you can right-click to copy it. 8:46 Paste that in to register the device. 8:50 If you need to register lots of devices at once, 8:52 you can do that using the sample files Apple provides here. 8:55 Bear in mind, nowadays Apple offers ways to share your app with external testers 8:59 using their email, no UDID required, via TestFlight and iTunes Connect. 9:04 So, you may find that you only need to add internal team devices here. 9:09 By the way, I know that was a mouthful, but 9:13 don't worry, we'll look at it when we visit iTunes Connect. 9:15 Speaking of which, let's head over there now to create our app record. 9:19 This is how Xcode will know where to upload our binary and also give us a place 9:22 to add all the metadata we'll need to display our app on the App Store. 9:26 Okay, we'll gonna my apps then click on the plus sign and add a new iOS app. 9:30 You'll enter the name. 9:39 The primary language and the version number which will probably be 1.0 or 9:43 less if you don't really understand version numbers, 9:47 I've included a link in the teachers notes that helps explain them. 9:51 You also need to create an SKU or askew. 9:58 This needs to be unique to your app on the App Store. 10:02 So, one, two, three, four, five is probably taken. 10:04 We'll pick St Patrick's Day way off in the future, and then we'll choose a bundle ID. 10:07 Lo and behold, there is the bundle IOD we just created on Member Center. 10:15 Then we'll create our app record. 10:20 And there we have it, the beginnings of our app record for our fake app. 10:24 We'll see a whole bunch of empty fields where we'll construct our app listing. 10:28 Essentially what users see when viewing your app on the App Store. 10:32 For all of these items you'll need to bear in mind that most users 10:35 are spending just a few seconds deciding whether or not to download your app. 10:38 You need these items to look sharp, convincing, professional, and 10:42 convey whatever it is you need them to grasp quickly. 10:45 Up top, we see a spot to upload screenshots which are images sized for 10:49 the different iPhones and iPad as well as an optional app a video preview. 10:54 As new devices with new screen sizes are added this list up here 10:58 is going to continue to grow. 11:03 I promise I won't waste your time going to each one. 11:05 As long as you promise to click the little question mark. 11:08 And then the Learn More. 11:12 So you can learn what types of screenshots are needed. 11:15 I will say however that these screenshots and 11:19 preview videos are really really important and shouldn't be rushed. 11:21 For screenshots you wanna make sure that you're showing relevant explanatory and 11:25 enticing shots of your app. 11:29 Which often means loading in fake data and images, or 11:30 manipulating raw screen shots using a program like Photoshop. 11:33 For instance, very often your screen shot will be more effective if you 11:37 overlay some captions or explanation. 11:41 If that's something you want, absolutely do it. 11:43 But make sure it looks professional when you're done. 11:46 If you need to enlist the help of a Designer, don't hesitate, it's time or 11:48 money well spent. 11:52 Similarly we see our spots for entering an apt description action. 11:54 This is text that explains your app to users. 12:01 Very often a quick intro or 12:04 positive quote followed by some bullet points is an effective route. 12:05 I'd encourage you to spend a few hours cruising around the App Store, 12:09 in iTunes since the interface is nicer, just reading other good app descriptions. 12:12 It will almost certainly spark some ideas. 12:17 And again, don't hesitate to enlist the help of a professional writer or 12:19 at the very least have the copy you write edited and 12:23 reviewed by several capable writers. 12:26 Also, it's worth noting that you can change your app description 12:28 whenever you want. 12:31 So if you want to try one approach for a few days, then switch to another. 12:33 You can do that as often as you like. 12:36 And now with the addition of App analytics, 12:38 you can actually see how those changes might be impacting your conversion rates. 12:40 Now I just mentioned that you can change your App description whenever you want, 12:44 that's more like the exception than the rule. 12:47 If we navigate up here, to resources and help 12:50 then FAQ and then managing your apps. 12:58 You'll see an FAQ on what items you can edit and 13:05 when essentially you can always at certain things like the app description and 13:07 pricing and some other less common ones. 13:12 But other items like keywords or 13:15 the app name or the version number or screenshots or 13:18 the large app icon can only be changed when you're in an editable state. 13:22 Namely prior to submitting, while waiting for review or when rejected. 13:27 What that means to you as a developer is, if your app gets approved and 13:32 you decide you want to change your keywords or 13:36 screenshots, you literally need to bump up the version number, create a new binary, 13:38 release a new version of the app and wait for Apple to approve the update. 13:43 So let that be one more reason to give these bits of metadata the attention they 13:47 deserve the first time around, as well as each time you update. 13:51 Let's head back to our fake app. 13:57 Now near description we'll see keywords. 14:02 For keywords, you're only allowed 100 characters, so make them count. 14:06 List your keywords and phrases separated by commas and delete any whitespace. 14:10 I also highly suggest snooping around with a site like sensor tower 14:14 to see where your competitors are using. 14:18 Also, bear in mind that your app name is indexed for searching. 14:21 So no need to repeat those words. 14:24 Your app description however is not, long story short key words count for a lot. 14:26 Let's cruise around and I'll highlight a few other important areas. 14:32 The app icon. 14:36 This isn't the icon that user see on their device 14:38 that you'll need to include in X code in a variety of sizes. 14:41 Here, you're uploading the icon that's displayed on the App Store. 14:45 They may at a glance look the same, but 14:48 here you can upload a much higher res version. 14:50 Of course, these icons need to look really sharp, so look to a pro for help. 14:53 Here we can set the category. 14:58 Could be something like book, or music, or medical. 15:01 You can set your ratings which depending on what you click will determine what 15:07 ages Apple recommends your app for. 15:11 Keep that in mind in terms of content. 15:13 Perhaps your app has a couple of non-essential PG 13ish 15:16 elements that you can remove and avoid giving your app an age restriction. 15:19 Down here we can turn on Game center or Newsstand. 15:24 We can also supply more detailed contact or review information. 15:30 This is really important for situations like where your app will need to log in in 15:34 order to access essential functionality. 15:38 Here you can provide one for the Apple tester. 15:41 Similarly, if there's something important you wanna tell the tester 15:43 this right here is the place. 15:47 Below that we can decide whether we want the app to release automatically 15:49 following approval schedule at some particular time in the future or 15:52 if we wanna flip the switch. 15:57 I would generally choose to flip the switch myself 15:59 since it allows you the chance to not release. 16:02 In case you find some critical bug during the time it's waiting in 16:04 Apple's review queue. 16:07 Let's touch on some of the other tabs we have here. 16:09 In prerelease, we see what pre release builds we've uploaded and 16:13 have an opportunity to add internal And external testers. 16:17 Remember, once you upload your binary through X. 16:21 Code you can distribute your apps to internal testers, 16:24 you don't have to wait for the app approval process. 16:27 External testers however may have to wait depending on the specifics of your app. 16:29 Also, remember that once you have version 1.0 live and 16:34 on the store, you can upload your version 1.1 or 2.0 here and 16:38 begin testing it, tweaking it, and uploading beta builds if you want. 16:42 You don't have to submit them for approval until you're ready. 16:46 Understanding your options for beta testing is important. 16:49 So I've included a link to the beta testing FAQ in the teachers notes. 16:52 In pricing, you set your pricing and also what territories you want to sell in. 16:55 For most apps you'll probably want to sell everywhere but perhaps not. 17:05 Also you may someday find something wrong with your app that you want to fix but 17:09 you don't actually want to develop or reject. 17:13 And in the interim, you don't want any new users to download your app. 17:16 One workaround for this is to remove it from your major markets like the US and 17:20 the UK and maybe Japan. 17:24 But leave it on some tiny little market or you might simply raise the price so 17:26 the app stays visible but you aren't getting a lot of new users. 17:31 Once you're bulletproof update is approved on the stored,you 17:35 simply change the pricing or 17:38 territories back where you want them when you release that new version. 17:39 By the way this talk of pricing actually reminds me of 17:44 one critical difference between the App Store and Google Play in Google Play. 17:48 In Google play when you make an app free, it's free forever. 17:51 It can never become a paid app. 17:54 To do that, you'd have to create a new app record in binary. 17:56 On the App Store, you can change the pricing from free to $50 and 17:59 back again and Apple doesn't care. 18:03 Your users might be a bit confused, but it's technically kosher. 18:05 In my experience, my apps get between 50 and 18:08 100 times as many downloads when they're free rather than a dollar or two. 18:10 This brings us to our next Hub, In-App Purchases. 18:15 Now, In-App Purchases could be a workshop unto themselves, but 18:19 if we click to add a new one, you'll see there are five flavors. 18:23 They're either consumable, like coins or food that gets used up in a game. 18:30 Non-consumable like some additional content you wanna user to unlock once and 18:35 then half forever, or three types of subscriptions you see listed below. 18:40 Now how you plan on monetizing your app is a big decision, and 18:45 of course has implications in the development of your app. 18:49 So if you haven't had those conversations with your team, curve out time for them. 18:51 You have lots of options. 18:55 And which you choose may have a huge impact on your success. 18:57 Assuming you do want to create an in app purchase, 19:00 this is where you would create the record for it and the associated pricing. 19:02 It's also where you add other languages to describe the in app purchases. 19:06 So users speaking other languages aren't simply presented with a default 19:10 English description. 19:14 As a general rule, I use one hour translation.com or at the very least 19:15 google translate, to submit translations for the largest eight to 12 app markets. 19:20 It doesn't cost much, and can add up to a lot over time. 19:25 Again these are all things to consider well, before your app is ready for market. 19:28 On the topic of international sales, let's cruise back to that first version's tab. 19:33 You see this English option over here? 19:43 This is where you would go to add metadata in other languages. 19:45 Now, for some apps they simply won't be of much use to non-english speakers but for 19:49 others this is a great lever to pull. 19:53 For instance, I have several alarm clock out. 19:56 They are all in English but a user who speaks little 19:58 to no English could still figure out how to use the app pretty easily. 20:01 The problem is they'd never find it on the App Store 20:05 since they're typing in key words in German or Mandarin or Norwegian. 20:08 Well, here you can enter in metadata for those languages. 20:11 I've done this many times using one hour translation or Google translate, and 20:15 it has for many apps comprised a large percentage of my total revenue. 20:19 It didn't make me rich. 20:23 But it had a very high return on investment, 20:24 much higher than the app itself, since it had no development implication whatsoever. 20:27 Speaking of development implications. 20:32 Localizing your app so it actually shows content in other languages 20:34 is actually pretty easy for I O S. 20:38 It's completely out of scope for today's discussion but 20:40 I strongly suggest you check localization out as an option. 20:43 Depending on your app just a few hours work might allow users and 20:46 a host of countries to receive a customized experience they wouldn't 20:49 otherwise pay for. 20:52 Not to mention you might not have much competition in that local language. 20:54 Again, a great topic to talk through with your team in one of the many, 20:57 many meetings I've now put on your calendar. 21:01 As for the remaining tabs, Game Center is for adding leaderboards and achievements. 21:04 Reviews allows you to view all your app reviews in one convenient place 21:10 rather than cruising through the App Store. 21:14 News stand will be useful for magazine and newspaper apps. 21:17 Under more you can view about app info show stuff like the Apple ID and the skew. 21:21 You can also view the app on the App Store which of course won't do anything for 21:28 our yet to be uploaded and approved app. 21:32 Now, once you've uploaded all the screenshots, optional app, 21:36 video preview, app description, and other items we mentioned, and 21:40 also submitted the binary and x code you would click this submit for 21:44 review button to put your app in queue with Apple. 21:48 But we aren't quite there yet. 21:52
You need to sign up for Treehouse in order to download course files.Sign up