What's New in iTunes Connect

Session 302 WWDC 2017

iTunes Connect has been updated to make the experience of delivering your app to the new App Store even better. Learn about new and updated meta-data requirements, capabilities to support promotion of in-app purchases and techniques for handling customer reviews. Discover how new TestFlight features and deployment options can help you test and deploy your next masterpiece.

[ Background Sounds ]

[ Applause ]

Hi everyone.

My welcome to our session on "What's New in iTunes Connect?"

My name is Daniel Meoh.

I'm an engineering manager on iTunes Connect.

So we're going to talk about a number of new features today.

Some of these we launched earlier this year and the rest will be rolling out over the course of the rest of this year.

We're going to talk about everything from responding to customer reviews to new ways to control how your app versions arrive in your customers' hands.

So let's jump right in and start by talking about ratings, reviews, and responses.

Now since we did launch this a few months ago, how many of you have already used this feature?

[ Scattered Applause ]

Great. Well, whether you've used this or not, I'm sure we can all agree that directly engaging our customers benefits everybody.

So before we talk about how to respond let's take a minute to think about why customers write reviews in the first place.

So sometimes our customers just love our apps and they want to let the world know.

Other times customers may be a little confused as to why maybe you've included or not included certain features or maybe around design decisions you may have made.

And finally, we're all familiar with this, customers often take to reviews to let us know about bugs or crashes in our apps.

Now no matter what the reason is, why customers write these reviews, we have a great way for you to respond.

Now here we see iTunes Connect.

This is where you've always come to read reviews from your customers and now this is where you come to respond.

We're going to take a look at our app, Forest Xplorer, which is a fictitious app for a hiking and trail navigation.

So let's look for a review to respond to.

We're going to start by looking for two-star reviews that don't yet have any developer responses.

And here we have one that we can take a look at.

It looks like we have a customer that's been using our app for a long time and just recently she went hiking and found that one of the app one of the trails that she was on was outdated.

Well, it turns out we released a new version of our app just this morning and it refreshes the trails in her area.

So let's go ahead and let her know that.

We'll start the process by clicking the "reply" button next to her review, which brings up this modal where we can type in our response.

Here we'll let her know that we really appreciate her using our app for so long and that she should check out the new version we released this morning because it should address her concerns.

Once we hit "submit" this response shows up right under the review.

Now you may notice that the word "pending" appears next to the response title.

All this means is that this response has not yet made it to the system to show up on the App Store.

Once it does this word "pending" will disappear.

For those of you who are wondering, this has nothing to do with app review.

Now one other thing to note here is that every review only has one response.

So your customer can update the review as much as they like and you can update your response as often as you'd like, but this is not a threaded conversation.

So it will only be one pairing per customer.

Now once this response does make it all the way to the store your customer will receive a notification.

This comes in the form of both a push and an email notification.

This notification is triggered when you, as a developer, submit your initial response or update an existing one after a customer has updated their review.

Any other times you update your response will not trigger a notification.

On your end you can also opt into an email notification.

This will be triggered when a customer updates the review after you've responded.

You can enable this by going into the "use/enroll" section of iTunes Connect.

All right, going back to our scenario; here our customer has tapped the "update review" link in the email notification that she received.

This gives her the chance to obviously update her review.

It takes her directly into the App Store to her review.

So it turns out our customer has updated her app and it worked out really well for her.

So she's decided to update her review to five stars.

Once she hits the "send" button we have another satisfied customer.

Now looking at some early stats around this feature, we notice that all of the reviews that were updated after developer response, it was an average of about a one and a half star increase to these reviews.

So that sounds like a great reason to go out there and start engaging your customers.

We also have a number of best practices around this feature.

First, customers of course like to know that they're being listened to.

So stay on top of what they're saying and respond in a timely manner.

One way you can do this is to opt into those notifications that we were talking about earlier.

That way when customers update their reviews after your response you can get a good feeling of how they 're reacting to your responses.

Next, really listen to your customers before you respond, and when you do respond, respond specifically to the thing they're talking to you about.

Try to stay positive and please don't use this to advertise or to incentivize higher ratings.

If you are responding or releasing a new version that addresses concerns that customers have been talking about, like features or bug reports, be sure to include this in your "what's new" text with your version update.

This way as many customers as possible will know that you've addressed their concerns.

You can also take this opportunity to respond to those customers so they can be notified that a new version is available to take a look at.

And finally, if you do have sensitive customer information please be mindful of the fact that this is a public forum so treat it that way.

We have a new store kit API around this feature that allows you to collect both reviews and ratings from directly inside of your apps without sending your customers to the App Store.

So be sure to come to our "What's New in Store Kit" session tomorrow at 11 to find out more about that.

All right, now let's talk about test flight.

So test flight is our beta testing platform.

It allows you to distribute your prerelease app builds to testers to vet your builds before you distribute them to the App Store at large.

Now we made a number of enhancements to this platform recently, both around how you distribute builds and how you manage testers.

So I'd like to invite Tom Neglen up to the stage to talk to us about this.

[ Applause ]

Thanks, Daniel.

I'm really excited to talk about Test Flight.

In April, we introduced multiple build support.

You're now able to distribute more than one build to your external testers at the same time.

You can do this by organizing your testers into groups and assigning one or more builds to each group.

Your internal iTunes Connect testers will now get access to all Test Flight builds.

So when you upload a new build it's automatically made available to your internal testers.

We've also added individual tester metrics so you can see who is actively testing and who is experiencing crashes.

Last, but not least, we added a "tester reinvite" button.

It's really easy to go into iTunes Connect and send a new invite to a specific tester with one click.

Now I'd like to show you what's possible with these new features.

Let's start with the simple example of using a group to send a build to your testers.

We can create a group by clicking "new group" in the left nav and giving our group a name.

We'll call this group "Beta Testers."

Let's say we want to use this group to test major feature changes.

We might want to add our QA team or other individuals who don't mind finding an occasional bug.

We can add testers to the group by clicking the plus button next to "testers" and selecting "add new testers."

All that's required to invite a tester to our app is an email address and the name is optional.

So we've added some testers to the group, but they won't actually receive an invite to test the app until we've also added at least one build to the group.

And we can do that in the "build" sub tab by clicking the plus button.

We're given a dialogue where we can browse all of our builds and when we select a build we're given an opportunity to update the test information before that build goes out to testers.

So we could add some notes here to let testers know what to look for as they're testing this build and if we've added a new feature or made some changes to an area of an app we might want to mention that here.

And with that, the build has been added to the group and will be delivered to our beta testers.

So let's take a look at what testers will see.

Once they've been given access to a build they receive an invite to test the app.

We only send the invite once and testers won't have access to any builds until they accept the invite.

So here's what the invitation looks like and when testers tap "view in test flight" it'll launch the test flight app.

Here, testers will be able to accept the invitation and install the beta app.

They'll also be able to see the notes we added on what to test and they can provide feedback by tapping "send feedback."

Now let's say our testers have used our build for a while and they've given us feedback about a bug they've found.

We could use the feedback to fix the bug and upload a new build.

We'll want to add the build to our beta testers group and when we're prompted we'll want to update the test information to let testers know that the bug has been fixed.

Once the build is added to the group, it'll be delivered to our beta testers so they could install and verify the fix.

So that's a simple way to use a group to send builds to your testers.

But aside from just finding bugs in your app, you might also want to use groups as a way to collect feedback, maybe from some of your power users who like giving feedback on early iterations or maybe from your CEO or potential investors.

You likely don't want to give them the same builds that you give your beta testers.

You want to ensure that you've worked out all the issues before you send them a build.

We can easily do this by creating an additional group.

Again, we'll click "new group" in the left nav and give our group a name.

We'll call this group "stakeholders."

We'll add some of our power users to this group and then when we're ready, we'll take a build that's been thoroughly vetted by our beta testers and add it to the stakeholders' group.

The stable build will be delivered to our stakeholders so they could begin to provide feedback.

That shows how you can use the flexibility of groups to give different builds to different sets of testers.

Taking this concept further, we can even create three different groups and give them names like "alpha," "beta," and maybe "release candidate."

You could push frequent builds to your "alpha" group and insure that any issues are isolated to the testers in that group.

As your build becomes more stable, you could promote it to the larger "beta" group.

And once you've reached the level of confidence with the stability of your build, you could go onto promote it to the "release candidate" group.

Even if you've fixed all bugs at this point, you could still use the testers in your "release candidate" group to collect further feedback before releasing a final version to the App Store.

Another option would be to use groups for two separate lines of development.

For example we can create an additional group that we use solely for experimental features.

And we can ensure that the builds we add to this group are isolated from our standard releases and we can control exactly which testers get access to these builds.

So I showed a couple ways to use groups for build distribution and I'm sure you'll come up with more.

Another example that I want to show is a way to organize testers before you even have a build that's ready for them.

It might be nice to create a new group called "WWDC."

You could add contacts that you meet at the conference who might later like to try a prereleased version of your app.

They won't actually receive an invite until you have a build that's ready for them and you add it to the group.

There's also a special default group called "iTunes Connect Users" and this is considered your internal group.

Well, what does that mean?

Only members of your iTunes Connect Team can be added as testers to this group.

And unlike other groups, members in your internal group will get access to all test flight builds.

So you might want to use this for your development team or those close to the development cycle.

We've looked at a few different ways to organize testers and give them access to different builds.

Let's take a look at how testers can interact with the builds that they have access to.

Once they've been given access to a build I'm sorry in the test flight app we always show testers the latest build that's available to them.

Here they can see previous builds, but only ones that they have access to.

They'll be able to see the notes on what to test and they can easily switch between versions by tapping "install."

It's really nice to be able to switch between different beta versions at any time.

Our QA team really likes this.

So let's take a look at tester management.

Back in iTunes Connect under "all testers", we can see who has accepted the invite.

We could sort by status to find testers who have yet to accept and if we want, we can send them a new invite by clicking "resend invite."

We also have a session count and this will tell us how many times each tester has used our app.

If we want to remove a tester, we can easily do that by clicking "edit" and selecting the testers we'd like to remove.

Then we simply click "remove."

Now, if you remove a tester from the "all testers" section, this would remove that tester from your app.

They'd be removed from all groups and would no longer have access to builds.

You could, of course, simply remove a tester from a specific group and this would just remove their access to the builds in that group.

Another metric that we have is the crash count and this will show us which testers are experiencing problems.

And if they haven't provided feedback already it might be a good idea to reach out.

These metrics are also available when looking at a group and the numbers that you see will only correlate to the builds in that group.

So when you make builds available to testers they'll be installable up until they expire.

When do builds expire?

Builds will automatically expire 90 days after they're uploaded.

You could remove a build from distribution earlier by going to the "build detail" page and clicking "expire build."

This would prevent future installs, but testers who have already installed will still be able to launch the app until the original 90-day interval is reached.

Also keep in mind you're currently limited to 2000 external testers.

Later this year we're going to be increasing that number and we'll be increasing it to 10,000.

[ Applause ]

We're really excited about this.

So those are just a few tips to mention when using Test Flight to distribute prereleased versions of your app.

You can find many more in the "Developer Guide" and you'll also find a link to the Test Flight Release Notes, where you can stay informed on new features and future STK support.

With that I'll give the stage back to Daniel.

Thank you.

[ Applause ]

Thanks, Tommy.

So those are some great new features we've added to Test Flight including the ability to distribute multiple builds to testers at the same time, group testers and distribute builds to those groups, and of course the increase from 2000 to 10,000 testers.

All right, now let's move on to talking about the new App Store.

Now you've been hearing about this all week.

We've gone back and we've redesigned the App Store from scratch.

And we've done this not just to make it easier for customers to discover new apps, but also to surface the rich culture around our app ecosystem that exists even today.

It all begins on the "today" tab.

This tab is a daily destination that contains a collection of apps that are curated by our editorial team into stories.

These stories tell customers not just what apps they love, but why they would love them.

By clicking or tapping on any of the icons on the "today" tab or anywhere else around the App Store you see the product page.

The product page is the home for one of our apps.

Now the changes that have happened around iTunes Connect that effect the new App Store mostly surface on this page.

So let's take a look at some of these changes.

First we'll take a look at the app icon.

Beginning with iOS 11 and Xcode 9, you'll no longer be managing your app icon in iTunes Connect.

Instead you'll be including your icon in the asset catalogue of your app binary.

[ Applause ]

Along with this change you'll be able to deliver wide gamut images for your icons that will be displayed in full fidelity on all supported devices.

And if you're working with multiple color spaces you can take advantage of Xcode's color management features to make sure your icons display accurately on all your target devices.

And thanks to app thinning you won't have to worry about the binary being delivered to your customer being unnecessarily large just because you've included an icon.

Next, let's talk about the subtitle field.

The subtitle is a new field that's meant to be a brief summary of your app's experience in a concise and compelling way.

This field is up to 30 characters in length and it's meant to compliment your app name.

This means whenever your app name shows up around the store your subtitle shows up along with it.

This could be the product page or the search page or any of the new tabs.

Now many of you already include this information today with your apps.

Your app name may look like this.

Well, with the new subtitle field you can move this information out of your app name and really highlight your brand and let your app names standalone without sacrificing searchability or the context that the subtitle brings.

As we move further down on the product page, we get to app previews.

With the new App Store you can submit up to three app previews and that's three previews per language.

As your customers browse the store, your previews will automatically play bringing your apps to life and immediately engaging your customers.

Below app previews, we see the description and prepended to this description is a promotional text field.

In iTunes Connect, you'll find this new field that's always editable and is meant to contain frequently changing information.

Today, you might let people know that your app is free for a limited time or maybe 40 percent off for a holiday weekend.

Well, in the future, your description will be locked after app review, so please use this field for this kind of information.

And we have one more exciting feature that we'd like to talk about that allows to surface your in-app purchases directly on the App Store and let your customers interact with those in app purchases right away.

I'd like to invite Will Avrell up to the stage to tell you more about it.

[ Applause ]

Thanks, Daniel.

We're extremely pleased to announce that for the first time we're making in app purchases discoverable on the App Store.

[applause] Yeah!

[applause] Give it up!

[applause] In addition, customers will be able to start their in app purchase right on the App Store and be taken directly to your app to complete the purchase.

Overall, we feel like this is a terrific way for developers to gain additional exposure for their in-app purchases on the App Store.

So with that said, let's take a dive in and look at where promoted in-app purchases will be discoverable on the new App Store.

So the first place that Daniel talked about is the product page.

As you scroll down the product page, you'll find your promoted in app purchases broken up in two into two distinct lists; your subscriptions and all in-app purchase all other in-app purchase types.

It's important to note here that you are limited to 20 in app purchases per app.

Also unique to the product page view is the ability to customize the order and visibility of your promoted in-app purchases as they appear on your product page.

This means you can do things like hide subscriptions the user already has purchased on the device or if you have a puzzle game, you can show the most relevant levels earlier in the list.

So for example, if the customer just beat level two in your game your puzzle game you can make sure that level three is the first thing that they see in this list.

So moving on, promoted in app purchases are now searchable on the App Store.

This means you can go to this search tab and you can search by the name or description of your promoted in-app purchase and see some results.

Also we're adding a new "trending" section for promoted in-app purchase searches, similar to what exists today for apps.

And finally, promoted in-app purchases are eligible to be featured by the App Store editorial team.

This means that your app could be featured on the "today" apps or games tab.

In this section, you get a nice little write up about your promoted in app purchase and tapping anything but the "buy" button here will forward you to the product page whereas clicking on the "buy" button will open the app and complete the purchase.

So, I've talked a lot about what promoted in-app purchases are and where they appear on the new App Store, but let's discuss what you as a developer need to do to implement and make an in-app purchase a promoted in-app purchase.

So we've broken this down into three steps, the first two of which are managed in iTunes Connect, but critically you must define some promotional data for your promoted in-app purchase.

This is an image, a name, and a description.

So these are the three pieces of information that are surfaced and visible on the App Store and because that's the case, they must be reviewed by the app review team.

Also, you might be familiar with name and description, as these are fields that exist today in iTunes Connect, but we've adjusted the limits slightly and the new character limits are 30 and 45 respectively.

So once you've set up your promotional data in iTunes Connect you need to configure your in app purchase and you need to do things like activate it so we know to count it against your limit of 20 and you need to set a default order and visibility for your promoted in-app purchase as it would appear on the product page.

Lastly, you need to implement some store kit APIs, well just one, but it is absolutely critical that you implement a single delegate method on the SK Payment Transaction Observer Protocol.

If you do not implement this single delegate method, your promoted in app purchases will not appear on the App Store.

So I mentioned the ability to customize the order and visibility of your promoted in-app purchases as they appear on the product page and that is accomplished through the SK Products Store Promotion Controller API.

So again, like I said, using this API, you can show more relevant promoted in app purchases on your product page.

I won't go into too much detail about how to implement this in code or the impressive array of options you can do with this optional store kit API, but be sure to check out the "What's New in Store Kits" session, which is tomorrow at 11 a.m. to figure out more about how to use these APIs and how to implement them.

So as I mentioned, the first two portions of implementing a promoted in-app purchase is done in iTunes Connect and I'd like to take this moment to demo for you exactly what it will look like to set up an in-app purchase as a promoted in-app purchase when this feature launches later this summer.

So hopefully everyone's familiar with this view, but all I've done at this point is go to the iTunes Connect website and log in with my user name and password.

So from here we're going to click on the "my apps" module and that'll take us to iTunes Connect and our my apps page where you get a nice little list of all of our apps.

So we've been talking about Forest Xplorer and, in fact, we just launched a brand new subscription called Pro Subscription and we'd like to make this promoted and visible on the App Store.

So the first step here is to click on the Forest Xplorer app.

This takes us into the app information view where we see some global information about our app as a whole.

We can set our name, our subtitle, change the category.

But this isn't really what we're concerned with here so we're going to click on the "features" tab and clicking the "features" tab automatically selects the in-app purchase left nav here and this takes us to all of our in-app purchases for the Forest Xplorer app.

Again, I'm really concerned with the Pro Subscription so I'm going to go ahead and click on "Pro Subscription."

Doing so took me into the in-app purchase detail view and as we scroll down this page a lot of this should be familiar to you if you've used in app purchases in iTunes Connect, but there's a brand new section which is called App Store Promotion and this is how we begin setting up our in app purchase to be a promoted in-app purchase.

So the first thing we have to do is upload an image.

So I'm going to go ahead and click "choose file" and perfect, my image is ready right here.

Let's just take a look.

Yeah, that looks good.

So we'll select this and immediately you'll notice that our image was masked and is now shown right next to our name and description.

So this gives us a nice little preview of what our promoted in-app purchase will look like on the App Store.

Again, I'll just mention that since these three pieces of data are surfaced on the App Store they must be reviewed, even though our Pro Subscription in app purchase is already approved and ready for sale.

Additionally I'll talk to this checkbox right here, which is your default visibility.

So in our case we have no plans to implement the optional store kit API.

So it's best for us to leave this checked because if we were to uncheck this and not implement the store kit API, we would never override the visibility of false and it would never be displayed on the App Store.

So I'm going to go ahead and leave that checked.

Also, I noticed when I uploaded my image, my name and description field changed colors and that's because we introduced new limits for these fields.

So my old name and description are longer than the allowable limits.

So I'm going to go ahead and edit these.

So I'm going to make this just Pro Subscription.

And I'm going to remove the duration from the description here.

So that's great.

I'm now under the limits for both of these fields and I can go ahead and click "save."

So I've set up the promotional data for this in-app purchase and I'm almost there, but I do need to configure it.

To configure this in-app purchase and really make it a promoted in app purchase I need to go to the App Store promotions navigation here on the left and this takes me to a list of all my in app purchases that have promotional data associated with them.

So you can see my Pro Subscription was added to the very top of this list, but it's not yet active, which means it will not be displayed on the App Store.

So to activate my Pro Subscription, I simply click on the checkbox here and you'll notice that clicking the checkbox automatically gave it a sort position of one.

So these orderings or sort positions are manageable by sliding each of these boxes.

So I'm going to move it down to two.

I'll move it down to three.

And you can also click this arrow, which will conveniently take you to the very top of the list automatically.

So as I mentioned, you are limited to 20 active promoted in-app purchases per app, but you can have as many set up with promotional data as you want.

So potentially this list could get very long and to help manage that, we have a filter right here to the right.

So you can filter promoted and not promoted in-app purchases.

So we like the way this looks.

We want our Pro Subscription number one in the list so we're going to go ahead and click "save."

And that's how easy it is to set up a promoted in app purchase in iTunes Connect.

At this point I'd like to give the stage back to Daniel.

Thank you for your time.

[ Applause ]

Thanks, Will.

So the ability to promote in app purchases will be available for all in app purchase types.

And whether you have an iOS or a universal app you'll be able to take advantage of this feature.

And, just like the rest of the new App Store, this will be available in iOS 11.

Now let's move on to phased release.

Now imagine with me for a minute that you're about to release a great new version of your app to the store.

You put it through an extended period of beta testing and you've subjected it to multiple rounds of low testing.

The moment you release it to the store, you watch your production environment crumble.

Now we understand that production is always a unique environment, no matter how much testing you've done.

And that's why we built Phase Release.

So let's take a look at how this works.

When you choose a version to be enabled for Phase Release and you push that version to this App Store, that version is available immediately, just like any version is today.

So if a customer goes to the App Store and does a manual update or downloads that app for the first time they will be receiving this newest version.

Now the difference with Phase Release is that users who receive this version over automatic updates will receive it over a gradual seven-day period.

So on day one up to one percent of your customers who are receiving this over automatic updates will have this available to them.

By day two you'll be up to two percent.

By day four; 10 percent.

And when they get to day seven, all of your customers who are using automatic updates will have this latest version available.

Now remember, if any of these customers do go directly to the App Store to either update or to download for the first time, during this period they will receive the latest version right away.

So let's look at how we might set this up in iTunes Connect.

So let's say we're about to release a brand new version of our Forest Xplorer app and we'd like to use Phase Release.

In order to do this, before we release this version, we can go to the bottom of our version page and choose "release over a seven-day period."

Once we've done this and the version is available on the store this area changes and we see a day counter instead.

Under each day is a maximum number of customers who will receive this over automatic updates.

Now let's say on day three we realize that we have some concerns about production.

At this point, we'd like to pause our phase release.

In order to do this, we simply choose "pause phase release" from the radio buttons in this area and then this area turns gray.

This means that no more of our customers are receiving this over automatic updates while we're paused.

If customers go directly to the store, they will continue being able to pull the latest version.

Now eight days later, we've addressed our performance issues and we're ready to resume our release.

So we simply, at this point, choose "resume phase release" and we're back in motion.

Now we come to day five and we're confident that our production environment is ready to handle the full load.

So we'd like to release this to all of our customers right away.

In order to do this, we choose "release to all users" in the top right corner of the page and once we confirm this decision, this version is now available to all of our customers.

The phase release is available to you today and no matter [ Applause ]

And no matter which version of iOS your customers are using, you can use this feature with all of them.

And that's Phase Release.

So we'd like to close out our session as we do every year, with some tips from app review about how to get your versions through review a little more smoothly.

So we'll start by talking about making sure your app functions throughout the review process.

Now a lot of us have external services that our apps depend on to function correctly.

So please make sure your external services continue to function, otherwise we can't complete the review of your apps that depend on them.

Next, please run your versions on an actual device before you submit.

Running on a simulator is not an actual device.

Next, if there is any sign-in information that your app requires, please include this on the version page.

We do get a lot of submissions where the sign in information is either missing or it's out of date.

So when you do move from version to version please make sure that this information is current.

If there are any obscure parts of your apps or just areas that are difficult to get to, please let us know in your app review notes.

If there's anything else we should know about your app, please feel free to use your field this field for that as well.

And our binary compatibility team may reach out to you over resolution center if they have any concerns about your binary being compatible with say the OS.

So don't be concerned if they do happen to send you a message.

And finally, please use keywords that are relevant for your apps and keywords that you have the rights to use.

[laughter] And those are some notes from app review.

So in conclusion, we've talked about many new features that change the way you work with your apps, from new ways to distribute builds during beta testing to new controls over how you release your app versions to your customers.

And once your apps are on the store we've created a new way for your customers to discover your apps and when your customers are ready to leave you feedback you now have new avenues to engage those customers and respond to their feedback.

For more information about what we've talked about today and any related information such as app review, guideline updates, or changes to sales and trends around subscriptions, please visit this link.

We also have a number of related sessions.

If you are curious about how to work with your app icons in Xcode, please check out the "What's New in Cocoa Touch Session Recording?"

We also had a great new session this morning that went into the design philosophy and the general thinking around the new App Store this morning called "Introducing the New App Store."

So if you haven't seen that, be sure to check that out because it's very interesting.

And tomorrow we have two store kit sessions; "What's New in Store Kit?"

and "Advanced Store Kit."

So if you want to learn more about the API side of the features we talked about today, come to those sessions.

Thank you for attending our session and we hope that you enjoy the rest of your conference.

[ Applause ]

Apple, Inc. AAPL
1 Infinite Loop Cupertino CA 95014 US