The latest version of Schoolwork, the powerful iPad app for teachers and students that helps them keep track of assignments and student progress, is now available. Make sure your app takes advantage of the latest ClassKit features to provide a great user experience. With the new ClassKit Catalog API, you can declare contexts ahead of time instead of at runtime, include keywords, and support a large number of assignable activities. Teachers can browse your app’s activities in Schoolwork before running your app for the first time on their device. Available in beta, this REST API can be tested with Schoolwork 2.1. And on iPadOS 14, ClassKit supports rich new metadata properties to make your content more discoverable by teachers in Schoolwork.
Category: Apple Developer News
Apple Developer News and Updates feed provided by Apple, Inc.
Submit your iOS and iPadOS apps to the App Store
Make sure your apps are ready when iOS 14 and iPadOS 14 become available to customers worldwide. Give users a quick way to engage with a part of your app at the right moment with App Clips. Let users experience your app right on their iPhone home screen with new widgets. Bring your ideas to life with new features and more realistic augmented reality experiences using ARKit and RealityKit. And much more.
Build your apps using Xcode 12 GM seed, test them on devices running iOS 14 and iPadOS GM seed, and submit them for review. Starting April 2021, all iOS and iPadOS apps submitted to the App Store must be built with Xcode 12 and the iOS 14 SDK.
Support game controllers in your app


Level up your apps and games with the Game Controller framework and easily build in support for popular console game controllers and MFi accessories on iPhone, iPad, Mac, and Apple TV. The precise control and tactile feedback provided by a game controller can deepen the player’s sense of immersion and enhance their gameplay experience. And now it’s easier than ever to help players discover which games support controllers.
With Xcode 12, you can indicate game controller support right when building your app. By indicating controller support, your App Store product page will display controller badging, and your app will be able to access controller input re-mapping options in Settings.
How to add support for game controllers in Xcode 12
To indicate controller support, follow a few simple steps:
- Open your Xcode project.
- Navigate to the Signing & Capabilities section of your app target.
- Add the “Game Controllers” capability in Xcode.
- Select each of the controller profiles your app or game supports.

Note: “Extended Gamepad” refers to game controllers featuring physical buttons, triggers, and thumbsticks such as the Steelseries Nimbus, Sony Dualshock 4 Wireless Controller, Xbox Elite Wireless Controller Series 2, and others; and “Micro Gamepad” refers to the controls provided by the Siri Remote for Apple TV.

If you are building your app using an older version of Xcode, you can indicate controller support by editing the info.plist for your app. Set the GCSupportsControllerUserInteraction key to true, then indicate each of the controller profiles your app supports.
<key>GCSupportsControllerUserInteraction</key> <true/> <key>GCSupportedGameControllers</key> <array> <dict> <key>ProfileName</key> <string>ExtendedGamepad</string> </dict> </array>
Press start
The Game Controller framework offers powerful features for your apps across Apple platforms. And with iOS 14, tvOS 14, and macOS Big Sur, your app will also gain support for the Xbox Adaptive Controller and Xbox Elite Wireless Controller Series 2, custom haptics for rumble feedback, and keyboard and mouse input on iPad. For more information, be sure to check out “Advancements in Game Controllers” and “Bring keyboard and mouse gaming to iPad.”
Resources
Advancements in Game Controllers
Let’s rumble! Discover how you can bring third-party game controllers and custom haptics into your games on iPhone, iPad, Mac, and Apple TV. We’ll show you how to add support for the latest controllers — including Xbox’s Elite Wireless Controller Series 2 and Adaptive Controller — and map…
Bring keyboard and mouse gaming to iPad
Level up your iPad games and add in keyboard, mouse, and trackpad controls. Discover how to use the Game Controller framework to augment your existing titles, bring over games from other platforms, or dream up entirely new interaction experiences. Learn how to integrate keyboard and “delta”…
App Store Review Guideline updates now available
The App Store is a safe and trusted place for customers to discover and download apps, and a great opportunity for developers. These guideline changes and clarifications support new features in upcoming OS releases, better protect customers, and help your apps go through the review process as smoothly as possible.
Updates are noted below. For complete details, see the App Store Review Guidelines.
Changes
2.5.16: App Clips, widgets, extensions, and notifications should be related to the content and functionality of your app. Additionally, all App Clip features and functionality must be included in the main app binary. App Clips cannot contain advertising.
3.1.2(a): Games offered in a streaming game service subscription must be downloaded directly from the App Store, must be designed to avoid duplicate payment by a subscriber, and should not disadvantage non-subscriber customers.
3.1.2(a): Apps that offer auto-renewing music and video subscriptions with prior approval by Apple may also be included in pre-defined bundles with cellular data plans offered in cellular carrier apps.
3.1.3(a): Reader apps may offer account creation for free tiers, and account management functionality for existing customers.
3.1.3(d): Person-to-Person Experiences: If your app enables the purchase of realtime person-to-person experiences between two individuals (for example tutoring students, medical consultations, real estate tours, or fitness training), you may use purchase methods other than in-app purchase to collect those payments. One-to-few and one-to-many realtime experiences must use in-app purchase.
3.1.3(f): Free Stand-alone Apps: Free apps acting as a stand-alone companion to a paid web based tool (eg. VOIP, Cloud Storage, Email Services, Web Hosting) do not need to use in-app purchase, provided there is no purchasing inside the app, or calls to action for purchase outside of the app.
3.1.7: Display advertising should be limited to your main app executable, and should not be included in extensions, App Clips, widgets, notifications, keyboards, watchOS apps, etc.
3.2.2(vi): Apps should not require users to rate the app, review the app, watch videos, download other apps, tap on advertisements, enable tracking, or take other similar actions in order to access functionality, content, use the app, or receive monetary or other compensation, including but not limited to gift cards and codes.
3.2.2(x): Apps offering personal loans must clearly and conspicuously disclose all loan terms, including but not limited to equivalent maximum Annual Percentage Rate (APR) and payment due date. Apps may not charge a maximum APR higher than 36%, including costs and fees, and may not require repayment in full in 60 days or less.
4.9: Streaming games Streaming games are permitted so long as they adhere to all guidelines — for example, each game update must be submitted for review, developers must provide appropriate metadata for search, games must use in-app purchase to unlock features or functionality, etc. Of course, there is always the open Internet and web browser apps to reach all users outside of the App Store.
4.9.1: Each streaming game must be submitted to the App Store as an individual app so that it has an App Store product page, appears in charts and search, has user ratings and review, can be managed with ScreenTime and other parental control apps, appears on the user’s device, etc.
4.9.2: Streaming game services may offer a catalog app on the App Store to help users sign up for the service and find the games on the App Store, provided that the app adheres to all guidelines, including offering users the option to pay for a subscription with in-app purchase and use Sign in with Apple. All the games included in the catalog app must link to an individual App Store product page.
After You Submit: If you still disagree with the outcome, or would like to suggest a change to the guideline itself, please submit an appeal.
Bug Fix Submissions: For apps that are already on the App Store, bug fixes will no longer be delayed over guideline violations except for those related to legal issues. If your app has been rejected, and qualifies for this process, please use the Resolution Center to communicate directly with the App Review team indicating that you would like to take advantage of this process and plan to address the issue in your next submission.
Clarifications
2.3.1: Don’t include any hidden, dormant, or undocumented features in your app; your app’s functionality should be clear to end users and App Review.
2.3.1: All new features, functionality, and product changes must be described with specificity in the Notes for Review section of App Store Connect (generic descriptions will be rejected) and accessible for review.
2.3.7: Choose a unique app name, assign keywords that accurately describe your app, and don’t try to pack any of your metadata with trademarked terms, popular app names, pricing information, or other irrelevant phrases just to game the system.
3.1.3: Other Purchase Methods: The following apps may use purchase methods other than in-app purchase. Apps in this section cannot, either within the app or through communications sent to points of contact obtained from account registration within the app (like email or text), encourage users to use a purchasing method other than in-app purchase.
3.1.3(c): Enterprise Services: If your app is only sold directly by you to organizations or groups for their employees or students (for example professional databases and classroom management tools), you may use purchase methods in addition to in-app purchase to collect those payments. Consumer, single user, or family sales must use in-app purchase.
3.1.3(e): Former 3.1.5(a) renumbered.
3.1.3(b): Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired in your app on other platforms or your web site, including consumable items in multi-platform games, provided those items are also available as in-app purchases within the app.
3.1.5: Former 3.1.5(b) renumbered.
4.5.2(i): MusicKit on iOS lets users play Apple Music and their local music library natively from your apps and games. When a user provides permission to their Apple Music account, your app can create playlists, add songs to their library, and play any of the millions of songs in the Apple Music catalog.
5.1.2(vi): Data gathered from the HomeKit API, HealthKit, Clinical Health Records API, MovementDisorder APIs, ClassKit or from depth and/or facial mapping tools (e.g. ARKit, Camera APIs, or Photo APIs) may not be used for marketing, advertising or use-based data mining, including by third parties. Learn more about best practices for implementing CallKit, HealthKit, ClassKit, and ARKit.
Enhancements to sandbox testing now available
The Apple sandbox environment lets you test in-app purchases on devices using product information set up in App Store Connect. You can now test upgrades, downgrades, and cancellations for subscriptions, as well as reset the introductory offer eligibility for a test account from Settings on devices running iOS 14 or later. You can also test your app’s response to interrupted purchases on devices running iOS 14 or later. And App Store Connect users with the Developer role can now create and manage sandbox tester accounts.
Design and implement macOS document icons
A good document icon aids in the identification of your file on the Desktop, in a Finder window, or in an open dialog, especially when previews aren’t available. These icons may be displayed on screen as small as 16pt or large enough to showcase every glorious design detail.
Depending on the file type and personal preference, document icons can also display document previews. If someone has chosen not to show document extensions in System Preferences, these icons can additionally provide additional context in deciphering their file type and native program.
With macOS Big Sur, you can customize and control how your app’s document icons display across the system. We’ll show you how to design a great icon, integrate it into your Xcode project, and assign document types and type identifiers.
Design a document icon for your app
By default, if you don’t specify a document icon for a file type in your app, macOS will automatically create one for you by compositing your app’s icon together with the correct extension name. This is a common pattern for imported document types or non-proprietary file formats that your application can open such as MP3, JPG or PNG.
Both the Music and Preview apps use system-generated document icons for document types like JPG and MP3.
You can additionally create a custom document icon if your app supports multiple file types and you’d like to visually distinguish between them. For example, a drawing application may open a jpg file, a project file, a library of drawing components, a plugin or a color swatch.
When creating a custom icon, we recommend keeping its design simple. Try to depict what your icon represents as closely as possible and with as few details as possible. Additionally, think of other document types that your document may commonly be next to, and use distinct shapes and colors that are identifiable even at smaller sizes.
If you plan to create multiple custom icons for different file types, it’s important to make each design distinct and understandable to help people know what to expect when they open them.
The elements of a custom document icon
Beginning with macOS Big Sur, you can generate a new custom document icon with a set of images and a text string.
To create a new custom document icon, you can provide a background fill, center image, or text string. Each of these three elements is optional, allowing you to use just one element or any combination of the three to customize your icon. From there, macOS will automatically layer, position, and mask these elements, then composite them into a page icon with a right corner fold.
You can download Sketch and Photoshop templates on Apple Design Resources to assist in the generation of the image assets in all their required sizes.
Fill in the background
The background image allows you to customize the background of your icon. The art should fill the entire drawing area, as shown below, and the system will automatically mask it to the document shape in all sizes.
Background images can not only be used to change the background of your document, but you can also use them to create custom designs that fill the entire page.
The background image should be drawn in the following sizes:
- 512×512
- 512×512@2x
- 256×256
- 256×256@2x
- 128×128
- 128×128@2x
- 32×32
- 32×32@2x
- 16×16
- 16×16@2x
The Xcode Project icon and the Rich Text Format icons use nothing but the background fill element to create a custom look and feel.
Add a center image
The center image is always half the size of the document canvas. For example, the center image displays at 16pt on a 32pt icon size.
The bulk of the artwork for the center image should be drawn at ~80% of the canvas size. For example, on the 256×256 version, the drawing should be inside a 205×205 area, as shown in the image below. Curves and points can extend into the margin to adjust for optical alignment.
The shape of the artwork should be simple to make it easily identifiable in smaller sizes. The rendering, however, can be as simple or as rich as you’d like.
The center image can be specified in the following sizes:
- 256×256
- 256×256@2x
- 128×128
- 128×128@2x
- 32×32
- 32×32@2x
- 16×16
- 16×16@2x
Add some textual context
The icon’s text string will often be your document’s extension, but can also be something more descriptive. For example, “SCENE” is more descriptive — and easier for someone to understand — than “scn.”
The Swift and Metal document icons both use text strings to clearly identify their document types.
The system will capitalize and scale the text to fit inside the icon, so it’s important to keep the length of your string as short of possible to prevent it from getting too small. The text will also automatically change its color to remain legible against flat colored backgrounds.
Build document icons in your app
To create your document icon types, you’ll need to integrate these elements into your Xcode project.
Bring images into the asset catalog
First, add your background fill image and/or center image into the Asset Catalog as Generic Icons.
- In Xcode, click the + button within your Asset Catalog.
- Choose macOS > macOS Generic Icon.
- Drag your assets into their respective size slots.
If your assets are named using the format icon_[size]x[size][@resolution].png (e.g. icon_32x32@2x.png or icon_32x32.png), they can all be dragged at once and will automatically be assigned to their appropriate size slots.
Configure the Document Type Identifier
Click the Imported/Exported Type Identifier disclosure triangle to add a new Document Type Identifier or open an existing one.
- Icon Image (optional): Select a Center Image from your app’s Asset Catalog.
- Icon Fill (optional): Select a Background Fill Image from your app’s Asset Catalog
- Icon Text (optional): Input the text you want displayed on the bottom of the document icon. This can be the same as the extension or something more descriptive. For example, the scn extension can use scene as its text.
- Legacy Icon (optional): This is either an .icns file or a Generic Icon in your Asset Catalog which will be used if you deploy your application to macOS 10.15 and below or in macOS 11 if Icon Image, Icon Fill and Icon Text are left blank. If a Legacy Icon was specified in the Document Type section, it will override this.
Declaring New Uniform Type Identifiers
Configure your document icons
Here’s how to indicate whether you want to display a legacy document icon, a custom icon, a programmatic option.
- In Xcode’s Project navigator, select the project file.
- Select your app’s target from the target list.
- Choose the Info tab.
Click the Document Type disclosure triangle to add a new Document Type or open an existing one.
You’ll have two options here for iconography:
- Legacy Icon (optional): This is either an .icns file or a Generic Icon in your Asset Catalog. macOS uses legacy icons if you deploy your app to macOS 10.15 or earlier, or if you don’t provide any custom elements for your icon. If you’ve specified a Legacy Icon in the Document Type Identifier, the one in the Document Type will override it.
- Use system generated icons: Check this box if you’ve defined an Icon Fill, Image or Text in the Document Type Identifier for use in macOS 11 and above, or you want the system to use your App’s icon and extension name as your icon. If you leave this box unchecked, macOS will use your Legacy Icon for that document type even when running macOS 11 and above.
Developing a Document-Based App
Validate your app document icons
You can test your new document icons in your app by building and running your app. Here’s what you need to do.
- Remove all other versions of your app from your test system and empty the Trash.
- Open your app project in Xcode
- Build and run your app
- Gather test assets by creating a new folder and adding one of each document type.
- Open the test asset folder in Finder.
- In Finder, go to View > Show View Options to open the “View Options” window for your test asset folder.
- Make sure that “Show icon preview” is unchecked.
Bring some life into your documents
Document icons in macOS Big Sur are an excellent way to further refine your app’s design on Mac and help people identify the correct file at a glance. For more support on creating these icons, be sure to check out the Apple Design Resources and developer documentation.
Resources
Developing a Document-Based App
Uniform Type Identifier Concepts
Declaring New Uniform Type Identifiers
What’s new in CryptoKit


People expect apps to be secure and their data to be protected. You may need to perform cryptographic operations to implement features such as authentication, message encryption, or to meet regulatory requirements. CryptoKit is a Swift framework that makes it easier and safer to perform common cryptographic operations, whether you simply need to compute a hash or are implementing a more advanced authentication protocol. This year, CryptoKit adds new APIs for HMAC-based Extract-and-Expand Key Derivation Functions (HKDF), support for PEM and DER formats, and with Swift Crypto your code can now run everywhere Swift runs.
HKDF
Key derivation functions allow you to derive one or more secrets of the size of your choice from a master key or passcode. Starting in iOS 14, you can now use standalone APIs for HKDF. Integrate the easy to use one-shot variant for quick tasks such as deriving multiple keys from a master secret, or the two-step extract and expand API with fine-grained control over the key derivation process. In prior versions of iOS, HKDF was supported only when deriving a symmetric key from an elliptic curve key agreement protocol.
PEM and DER formats for encoding elliptic curve keys
PEM and DER formats are now supported directly in CryptoKit. You can now directly pass a PEM string or DER-encoded data to initialize CryptoKit public and private keys, without using another library to perform the conversion.
Portability
With Swift Crypto you can create cross-platform solutions using the CryptoKit APIs on all platforms that Swift supports, including Linux and servers. Portability is important when you need to run the same code on your client and server, such as supporting two-factor authentication using a One-Time Password.
Resources
Details for app privacy questions now available


At Apple, we believe that privacy is a fundamental human right. As announced at WWDC20, App Store product pages will feature a new privacy information section to help users understand an app’s privacy practices. Today we are publishing more details for developers on what will be covered in this new privacy section. By the end of next month, you will be able to submit your information via App Store Connect to prepare for this feature rolling out to users by the end of the year.
Learn more about providing app privacy information
In addition, on iOS 14, iPadOS 14, and tvOS 14, apps will be required to receive user permission to track users across apps or websites owned by other companies, or to access the device’s advertising identifier. We are committed to ensuring users can choose whether or not they allow an app to track them. To give developers time to make necessary changes, apps will be required to obtain permission to track users starting early next year. More information, including an update to the App Store Review Guidelines, will follow this fall.
Get ready for subscription offer codes
Later this year, you’ll be able to acquire, retain, and win back subscribers with subscription offer codes: unique, alphanumeric codes that provide free or discounted prices for auto-renewable subscriptions. Provide your one-time use codes digitally or offline at physical events, alongside products, and more. Customers on iOS 14 and iPadOS 14 and later can redeem offer codes on the App Store, through a one-time code redemption URL, or within your app if you’ve implemented the presentCodeRedemptionSheet API.
Upcoming tax and price changes for apps and in-app purchases
When taxes or foreign exchange rates change, we sometimes need to update prices on the App Store. In the next few days, prices of apps and in-app purchases (excluding auto-renewable subscriptions) on the App Store will increase in response to tax changes in Chile, Mexico, Saudi Arabia, and Turkey. Your proceeds will be adjusted accordingly and will be calculated based on the tax-exclusive price.
- Chile: New value-added tax of 19%
- Mexico: New value-added tax of 16%
- Saudi Arabia: Increase in value-added tax from 5% to 15%
- Turkey: New digital services tax of 7.5% (in addition to the existing value-added tax of 18%)
In addition, your proceeds will also be adjusted in Germany, France, Italy, and the United Kingdom, and will be calculated based on the tax-exclusive price. However, prices on the App Store will not change.
- Germany: Reduced value-added tax rate from 19% to 16% (effective July 2020)
- France: New digital services tax of 3% (in addition to the existing value-added tax of 20%)
- Italy: New digital services tax of 3% (in addition to the existing value-added tax of 22%)
- United Kingdom: New digital services tax of 2% (in addition to the existing value-added tax of 20%)
Note that Apple will automatically issue refunds on a monthly basis to customers in Germany (effective July 2020) with auto-renewable subscriptions to account for the tax reduction. These refunds will not affect your proceeds.
You can download the updated price tier charts now. Once these changes go into effect, the Pricing and Availability section of My Apps will be updated. You can change the price of your apps and in-app purchases (including auto-renewable subscriptions) at any time in App Store Connect. If you offer subscriptions, you can choose to preserve prices for existing subscribers.
