Streaming is available in most browsers,
and in the WWDC app.
What's new in App Store Connect
Discover the latest improvements to App Store Connect, your suite of tools to upload, submit, and manage apps on the App Store. Learn about enhancements to the App Store Connect API, in-app purchase and subscriptions, Game Center, and more.
- App Store Connect API
- App Store Connect API Resources
- Have a question? Ask with tag wwdc20-10651
- Learn more about App Store Connect
- Search the forums for tag wwdc20-10651
- Build light and fast App Clips
- Get ready to optimize your App Store product page
- Meet in-app events on the App Store
- Meet TestFlight on Mac
- What's new in App Analytics
- What's new in App Clips
♪ Voiceover: Hello, and welcome to WWDC.
Daniel Miao: Hi, everyone.
Welcome to our session on What's New in App Store Connect.
My name is Daniel Miao, and I'm an engineering manager on the App Store Connect team.
So as with every WWDC, we have a ton of exciting new features for you.
Today, I'll talk to you about how to use App Store Connect to configure and test App Clips as well as how to take advantage of new Game Center features like Challenges and Recurring Leaderboards.
I'm also going to give you some exciting updates about both in-app purchases and the App Store Connect API.
So, as you heard in the keynote, an App Clip is essentially a small part of your App that's discoverable at the moment you need it, and is focused on performing a specific task.
From a technical standpoint, an App Clip is simply a binary that you package alongside your app and runs on device just like an app.
The App Clip binary is delivered to the device when it's invoked, and we limit the size of the binary to make sure the Invocation of the App Clip feels very fast.
Now in order to deliver a great App Clip experience, there are a few major areas to think about.
First you'll want to beta test your App Clip to make sure you're providing a solid user experience.
Then, when you're ready to release your App Clip to the rest of your users, you'll set up App Clip Card Metadata to provide meaningful information to your customers about what your App Clip does.
And finally, you'll need to properly define domain associations to enable your App Clips to launch.
But before we get into these, I want to spend a few minutes talking about a concept that's foundational to all of these areas.
And that's what an App Clip Invocation is and why it's important.
I'll start off with an example of invoking an App Clip from Safari.
Here, we're on the forestexplorer.org website.
The first thing you'll notice is this banner at the top of the page.
We call this the Safari App Clip Banner.
It appears when a website is associated with an App Clip.
In Safari we invoke the App Clip by tapping the OPEN button in this banner.
And this brings up what we call the App Clip Card.
This Card contains more information about the App Clip before it's launched on the user's device.
Tapping the open button on the app the Card launches the App Clip itself.
And once your App Clip is running, a link to your full app on the App Store will briefly appear at the top of the screen.
There are many ways to invoke an App Clip.
As you just saw an App Clip can be invoked from Safari.
But App Clips can also be invoked from Messages, Maps, via NFC tags and QR Codes, and based on a user's location.
But no matter how it's invoked, almost every App Clip Invocation will be associated with an Invocation URL.
A simple example of an Invocation URL is a URL of the web page that we just saw in our last example, forestexplorer.org.
A second example is a piece of functionality that we're introducing to Forest Explorer.
Users will be able to use our App Clip to reserve campsites from Apple Maps.
Here you see the Invocation URL, camp.forestexplorer.org/reserve and then the ID of the campground for the reservation.
Now users will also be able to check into the campsites that they reserve by scanning and NFC tag at the campsite.
This URL contains the ID of the campground along with the specific campsite number.
So the Invocation URL serves two main purposes.
The first is when an App Clip is displayed, the Invocation URL is used to determine what metadata is shown on the App Clip Card.
Then, when the App Clip is launched on the user's device the Invocation URL is passed into the App Clip to deep link the user into a specific piece of App Clip functionality, similar to how you can deep link into Apps today.
So, now that you're a bit more familiar with how an App Clip is invoked, let's talk about how to deliver and beta test your App Clip.
So after you finished developing your App Clip in Xcode, you'll generate a build.
This build contains both your app and your App Clip together.
An App Clip can not be packaged separately from your full app.
The build is then delivered into App Store Connect.
You can find the build in the TestFlight view of App Store Connect.
And you'll know that it's a build that contains an App Clip because it has an extra row containing the same information you're used to seeing with apps, but specific to the App Clip.
When you click into the build details for this build you'll see a new App Clip Invocation section on the page.
From here you can configure up to three Invocation URLs for your testers to test.
To do this you provide a title, which appears in the TestFight App along with the Invocation URL itself.
Now once the App Clip Invocations have been configured, clicking save will make them available to testers immediately.
Now let's look at what testers will see.
In the App detail view, you'll see a new App Clip section.
Here we see a list of App Clip Invocations that we just set up in App Store Connect.
Tapping the TEST button will launch the App Clip associated with the current build and pass the configured Invocation URL into the App Clip to support deep linking.
Now one thing to note is that TestFlight is the only App Clip Invocation case that does not show an App Clip Card before launching the App Clip itself.
If testers encounter any issues with this App Clip, TestFlight Feedback will be available to collect information from testers just like it is for apps.
So once beta testing is complete, it's time to think about the metadata that will display to your users on the App Clip Card.
The App Clip Card contains a header image, a title, a subtitle, and a call to action.
Toward the bottom of the Card, you'll also see more information about the full app and a link to the app on the App Store.
The App Clip Card is part of the overall App Clip experience.
It's easy to get started with App Clips by setting up a default set of App Clip Card metadata in App Store Connect.
In fact, the default metadata is required for all App Clips.
And of all the Invocation methods that I spoke about earlier, this metadata will only appear when an App Clip is invoked from Safari or from Messages.
And for many of you, this is all you'll need to set up before releasing your App Clip to the world.
To configure your default experience in App Store Connect, you'll start on the iOS version page.
Here, you'll enter the default experience metadata, including the header image, subtitle, and you'll choose a call to action verb.
When you're App Clip is invoked from Safari or from Messages, you'll see this metadata appear on the App Clip Card.
Now you might be wondering how Safari knows that a web page is associated with your App Clip in order to invoke your default App Clip experience.
Well to make this association, you simply include a metatag on the web page itself with the name "apple-itunes-app".
This is the same tag that's used for Safari Smart App banners today.
But with an extra attribute for the App Clip, the App Clip bundle ID attribute identifies which App Clip to associate with this web page.
And for your customers who are on iOS 13 and earlier who can't run App Clips, you can add an app ID attribute that'll link them to your full app on the App Store.
And that's how you set up a default App Clip experience.
Some of you may want more control over your App Clip experiences.
For example, you may want to set up customized App Clip Card metadata for specific Invocation URLs.
You can do this by creating advanced App Clip experiences.
Not only can you customize App Clip Card metadata with advanced experiences, but you can also associate these experiences with places on Apple Maps.
Finally, advanced App Clip experiences support all of the Invocation methods I told you about earlier.
So, now let's look at a few examples of advanced Clip experiences for Forest Explorer.
First, is the ability to invoke a campsite reservation experience from Apple Maps.
When a user taps the button on the Apple Maps place Card for this campground, the App Clip Card for this experience will appear.
We want this App Clip Card to display a photo of the campground as well as a meaningful title and subtitle.
In this case we set the title to "Reserve" and subtitle to the name of the campground.
Next let's take a look at the campsite check-in experience.
Now campers will be able to check into our high tech campgrounds by scanning on-site NFC tags encoded with our campsite check-in URL.
Just like the reservation case, we want this experience to display the campground photo and name, but this time we want the title to say "Check-in." Now looking at the Invocation URL, you'll notice that this URL is specific to each campsite.
But we want a single set of metadata to appear for all campsites.
If we register metadata for the URL as you see it, we will need to register the same metadata for every single site.
And this would get repetitive very quickly.
So instead, we'll only associate the campground metadata to the first part of the Invocation URL.
Any URL beginning with this prefix will display the same metadata.
And now we've configured metadata for all of the campsites with a single registration.
These are just a few ways to configure advanced App Clip experiences.
Now I'd like to show you how to set up advance experiences in App Store Connect.
First, we'll head back to the iOS version page.
Next, we'll click on the Get Started link in the Advanced App Clip experiences section.
And then we land on this page.
We'll get some background on what you'll be asked to provide for the experience you're registering.
First, you need to specify the App Clip Invocation URL for your App Clip experience.
In this case I'm going to register the full URL for the campground reservation experience.
Below the URL Is the bundle ID of the App Clip itself.
After setting up your URL, it is time to enter the metadata for the App Clip Card.
First, we upload metadata that includes the header, image title, and subtitle for this App Clip Card.
And after entering the metadata we answer the question of whether to associate this experience with a place in Apple Maps.
The campground is represented as a place on Apple Maps, so we select "Yes" for the place selection.
Then, we select a Maps Action that best fits the experience by selecting Open Reserve Room.
To complete setting up the place association, we select the campground that we're creating the experience for.
In this case, Lakeside Campground.
And once we've chosen a place we're asked a few questions about the relationship between the App developer and the place.
Since Forest Explorer does not own the campground but does have a relationship with the campground, we select "Authorized by Owner" for the relationship.
And then in response to what is promoted in this experience, we choose a different business or service since we're promoting the campground and not Forest Explorer.
And generally the answer to what is promoted will fall into one of two main categories: Your business and Other businesses.
Most of you will set up experiences promoting your own business because your App Clip represents surface offerings that your business provides.
But some of you will set up experiences for other businesses.
This makes sense when you represent other businesses, for example, the way Yelp does.
Notice that the icon that displays when the experience represents another business is a category icon and not the App icon.
This icon is displayed in history, the Safari App Clip banner and other parts of the App Clip Experience.
Once you've completed the process of setting up your experience, you'll see all the experiences you've configured along with their statuses on the App Clip Experiences page.
And that's how you set up advanced App Clip Experiences in App Store Connect.
Now once this is done, it's time to think about domain associations.
Every Invocation URL contains a domain.
Now we need to make sure you're authorized to use these domains to invoke your App Clips.
To do this, first you specify which domains you want to associate with your App Clips by using the Associated Domains Entitlement.
Next, you set up Apple App Site Association files to be served from those domains.
These need to contain a reference to the App Clip App ID.
If everything checks out, then your App Clip can be invoked on device.
If you want to check the validation status of your App Clip, go to the build details page in App Store Connect.
From here, click the View Status link in the App Clip section, and this will bring up a modal showing domain validation status.
The cache status column is what drives App Clip Invocations on your customers devices.
And if, for example, you're working on your Apple App Site Association file, and you want to find out whether your changes are valid, you can click the Load Debug Status link.
By doing this we'll reach out to your servers in real time and validate the App Clip portions of your file.
If there are any issues, you can get more detail here.
Now, there's a lot more to learn about associating domains.
So for a full walkthrough of the process, be sure to check out the What's New in Universal Links session.
There are also a number of other informative sessions focusing on various aspects of App Clips that are linked in the resources associated with this session.
And that's how you set up App Clips in App Store Connect.
Next, I'd like to show you how to use App Store Connect to take advantage of the new features in Game Center on iOS 14.
First, we have challenges.
Now, Challenges enable players to challenge other players to complete an achievement or to beat a leaderboard score.
To enable this feature for your game, go to the Game Center landing page under Features.
From there, you click the "Allow challenges in this game" checkbox.
Once you save this change, your players will be able to challenge each other.
Next, we have Recurring Leaderboards.
Recurring Leaderboards are a new kind of leaderboard that allow you to collect scores for a predetermined period of time.
Then that period is then scheduled to repeat at specific intervals.
As an example, let's say you create a Recurring Leaderboard that begins for the first time on October 13 at 6:00 pm.
It lasts for four hours and repeats every week.
This means that scores are posted to this leaderboard beginning on Tuesday the 13th at 6:00 pm, and the leaderboard continues to collect scores for four hours until 10:00 pm.
And every week after the 13th from 6:00 to 10:00 pm, a fresh leaderboard opens up again to take new scores.
This is the page where you set up Recurring Leaderboards in App Store Connect.
If you set up leaderboards in the past, most of these fields will look familiar to you.
For Recurring Leaderboards, we've just added a start time, a duration, and a field where you can specify the recurrence rules.
We have two additional sessions that cover the full breadth of new Game Center features, so be sure to check those out.
Next, I want to give you an exciting update about our subscriptions program.
Now Subscriptions are one of the fastest growing business models on the App Store.
And we know that customers love our Family Sharing capabilities, which let them share Apple services like Music, Apple Arcade, and Apple TV+, which is why we're so excited to announce that starting this Fall, Family Sharing for subscriptions will be available to all App developers.
For the first time, everyone in the family can have access to great subscriptions from the App Store with a single purchase.
Family Sharing will be available for both autorenewal subscriptions as well as nonconsumable in-app purchases.
Family sharing is flexible enough to adapt to your different business needs.
For example, if you would like to make a Family Shared subscription and upgrade from an individual one, you can do just that.
When you enable Family Sharing for your subscription or nonconsumable in-app purchase, all new customers will automatically share the purchase with their family.
Be sure to update your in-app purchase metadata to appropriately communicate that it is a shared purchase.
On the other hand, if you have existing subscribers, those subscribers will need to take an action to opt-in to sharing the subscription with their families.
To configure Family Sharing in App Store Connect, navigate to the In-App Purchase detail page.
Once you arrive here, you'll want to think about your metadata to make sure you're communicating that this is a Family Shared in-app purchase.
When you're ready to enable Family Sharing, click the Turn On link toward the middle of the page.
When you do this we will ask you to confirm your decision.
Please consider your decision carefully because once you enable Family Sharing for a live in-app purchase, you cannot turn it off again.
Once you confirm, Family Sharing will go into effect immediately.
For more information about how to support Family Sharing with StoreKit along with other updates to StoreKit APIs, watch the What's New in In-App Purchase session.
We've also added an exciting set of testing features that includes local testing of in-app purchases directly from within Xcode, and we've made enhancements to the sandbox testing experience.
We'll take a deep dive into these features in Testing in-App Purchases.
And finally, if you want to make the most of subscription features for your business, you'll want to watch Architecting for Subscriptions.
And finally, we'd like to tell you about our expanded App Store Connect API.
Two years ago we launched the App Store Connect API with support for TestFlight, User management, Provisioning, and Reporting.
Later this year, we're excited to be adding two powerful new sets of APIs.
We'll be introducing a suite of App Metadata APIs that will let you manage your presence on the App Store as well as a new Power and Performance API that'll let you download the same aggregate data that drives the new power and performance analysis tools in Xcode.
In fact, just between these two new categories of API functionality, we're adding over 200 new endpoints.
For app metadata, you will be able to do things like create new App Store versions, set pricing and availability, edit app and version-level metadata, associate builds to your App Store versions, and submit those versions for review.
Now we can't even begin to scratch the surface of the new APIs in this session.
So be sure to check out the new App Store Connect API session for deep dive into the new APIs and walkthroughs of some common use cases that you may encounter.
So we've covered a lot of ground today.
We talked about using App Store Connect to configure App Clips and new Game Center features like Challenges and Recurring Leaderboards.
You'll soon be able to make your subscriptions Family Shareable, and we're adding a ton of new functionality to the App Store Connect API.
We're very excited about all of these new features, and we can't wait to see what you'll do with them.
Thank you for watching this session and please enjoy the rest of your conference.
Looking for something specific? Enter a topic above and jump straight to the good stuff.
An error occurred when submitting your query. Please check your Internet connection and try again.