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: wwdc2020-10651
$eventId
ID of event: wwdc2020
$eventContentId
ID of session without event part: 10651
$eventShortId
Shortened ID of event: wwdc20
$year
Year of session: 2020
$extension
Extension of original filename: mp4
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: [2020] [Session 10651] What's ne...

WWDC20 • Session 10651

What's new in App Store Connect

App Store and Distribution • iOS, macOS, tvOS, watchOS • 22:11

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.

Speaker: Daniel Miao

Open in Apple Developer site

Transcript

Hello and welcome to WWDC. 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 gonna 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 wanna 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 wanna 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. 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 clip 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 the 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 camp sites 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 in to the campsites that they reserve by scanning an 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 finish 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 cannot 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 TestFlight 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 Clips section. Here, we see the 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 your 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 meta tag 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 wanna 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 app 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 the subtitle to the name of the campground.

Next, let's take a look at the campsite check-in experience. Campers will be able to check in to 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 would 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 advanced 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 where you'll get some background on what you'll be asked to provide for the experience you're registering. First, you'll need to specify the app clip invocation URL for your app clip experience. In this case, I'm gonna 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's 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. 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 wanna 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 wanna 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 wanna 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.

There's a lot more to learn about associating domains, so for a full walk-through 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, and 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 13th at 6:00 p.m. 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 p.m. and the leaderboard continues to collect scores for four hours until 10:00 p.m. And every week after the 13th, from 6:00 to 10:00 p.m. 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've 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 wanna give you an exciting update about our subscriptions program. 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 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 auto-renewable subscriptions, as well as non-consumable 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 an upgrade from an individual one, you can do just that. When you enable Family Sharing for your subscription or non-consumable 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 wanna 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 with In-App Purchases" 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 wanna make the most of subscription features for your business, you'll wanna 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 exciting 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'll 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 a deep dive into the new APIs and walk-throughs 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.

[chimes]