Getting with the Program

To publish an app on the App Store, we need to have a paid account with Apple’s developer program. The free level of membership lets us run apps on our own device, but to use the publishing resources of the App Store, we need to pay up. When you are ready to take this step, sign up at https://developer.apple.com/programs/.

You can join the program as either an individual or an organization. Joining as an individual means your own name is shown on App Store listings, which means the authors’ apps literally show up as being by “Chris Adamson” or “Janie Clayton.” To join as an organization like a company or nonprofit, there are many more requirements, such as being legally incorporated and having a D-U-N-S Number that Apple can use to verify your organization’s legal status. You can’t just make up a cool doing-business-as (DBA) name and expect Apple to roll with it.

As of December 2016, membership costs US$99 per year and covers development for all Apple platforms: iOS (including iPhone, iPad, Apple Watch, and Apple TV), macOS, and Safari extensions. Along with the ability to publish apps through the App Store, membership benefits include TestFlight testing services (which we’ll cover shortly) and access to pre-release versions of iOS, macOS, tvOS, watchOS, and Xcode. Members also get two technical support incidents per year, which provide answers from Apple support engineers to problems in your code. These are great for really tough problems that aren’t easily fixed by searching Stack Overflow or Apple’s own developer forums.[1]

Once you’ve joined the program, there are two sites you’ll use to handle your development and publishing needs.

Member Center

Your account page [2] on the Apple Developer site is where you manage assets specific to your development process. The front page has links to helper sites like the Apple Bug Reporter[3] and the forums, but the essential resource here is “Certificates, Identifiers, & Profiles.” These are the electronic assets that identify and authenticate both you and your apps.

Certificates authenticate your identity to Apple and Apple’s identity to you. When you first used “Fix Problem” to run the app on your device, Apple set up these certificates in the OS X keychain on your Mac. Anytime we run on the device or submit to Apple, these certificates need to be found, which is important to remember when upgrading to a new computer. Fortunately, Xcode’s preferences allow us to import and export developer accounts in a format that includes this data.

Profiles are used for two distinct purposes. A development profile allows an app to be run on one or more specific devices. Combined with a matching certificate, it tells the iPhone, “It’s OK for this developer to install this app on this device.” On the other hand, a distribution profile asserts your identity to Apple itself; it’s used in the distribution process to prove to Apple that “we know this person, and it’s OK for them to submit apps for review.”

Finally, identifiers are just unique strings to identify a given application in the store, or to work with some advanced iOS features like iCloud and Wallet that need globally unique identifiers.

iTunes Connect

If the Member Center is the heart of development for the App Store, iTunes Connect[4] is all about distribution.

As a new member, your first task in iTunes Connect will likely be agreeing to multiple legal agreements for Apple to distribute your apps for you, and setting up banking information (so you can get paid!). Later, you can come back here to check out sales reports on published apps and see how the app is being rated and reviewed on the App Store.

The most important section of iTunes Connect is My Apps, where we assemble everything we need to get our app on the store: artwork, pricing data, descriptions and other metadata, and so on.

In fact, we haven’t done any of those things yet, so let’s go back to Xcode and get our app ready for the store.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset