---
title: Technotes
framework: Technotes
role: collection
path: technotes
---

# Technotes

Learn about specific development topics through these in-depth technical articles.

## Overview

Overview Technotes are focused, timely documents from Apple Developer Technical Support. They explore a wide range of development topics and provide guidance for developers creating apps and accessories for all of Apple’s platforms.

## Topics

### Latest

- [TN3216: Supporting touch input for games on macOS](technotes/tn3216-supporting-touch-input-for-games-on-macos.md)
- [TN3215: Reading man pages](technotes/tn3215-reading-man-pages.md)
- [TN3192: Migrating your app from the deprecated UIRequiresFullScreen key](technotes/tn3192-migrating-your-app-from-the-deprecated-uirequiresfullscreen-key.md)
- [TN3179: Understanding local network privacy](technotes/tn3179-understanding-local-network-privacy.md)
- [TN3214: Validating the fonts you ship in your app](technotes/tn3214-validating-the-fonts-you-ship-in-your-app.md)
- [TN3137: On Mac keychain APIs and implementations](technotes/tn3137-on-mac-keychains.md)
- [TN3189: Managing Mail background traffic load](technotes/tn3189-managing-mail-background-traffic-load.md)
- [TN3213: Moving from Multipeer Connectivity to Network framework](technotes/tn3213-moving-from-multipeer-connectivity-to-network-framework.md)
- [TN3210: Optimizing your app for iPhone Mirroring](technotes/tn3210-optimizing-your-app-for-iphone-mirroring.md)
- [TN3211: Resolving SwiftUI source incompatibilities for State and ContentBuilder](technotes/tn3211-resolving-swiftui-source-incompatibilities-for-state-and-contentbuilder.md)
- [TN3212: Adopting gesture recognizers for Sidecar touch support](technotes/tn3212-adopting-gesture-recognizers-for-sidecar-touch-support.md)
- [TN3208: Preparing your app’s launch screen to meet App Store requirements](technotes/tn3208-preparing-your-apps-launch-screen-to-meet-app-store-requirements.md)
- [TN3205: Low-latency communication with RDMA over Thunderbolt](technotes/tn3205-low-latency-communication-with-rdma-over-thunderbolt.md)
- [TN3206: Updating Apple Pay certificates](technotes/tn3206-updating-apple-pay-certificates.md)
- [TN3190: USB audio device design considerations](technotes/tn3190-usb-audio-device-design-considerations.md)
- [TN3194: Handling account deletions and revoking tokens for Sign in with Apple](technotes/tn3194-handling-account-deletions-and-revoking-tokens-for-sign-in-with-apple.md)
- [TN3193: Managing the on-device foundation model’s context window](technotes/tn3193-managing-the-on-device-foundation-model-s-context-window.md)
- [TN3115: Bluetooth State Restoration app relaunch rules](technotes/tn3115-bluetooth-state-restoration-app-relaunch-rules.md)
- [TN3151: Choosing the right networking API](technotes/tn3151-choosing-the-right-networking-api.md)
- [TN3111: iOS Wi-Fi API overview](technotes/tn3111-ios-wifi-api-overview.md)
- [TN3191: IMAP extensions supported by Mail for iOS, iPadOS, and visionOS](technotes/tn3191-imap-extensions-supported-by-mail.md)
- [TN3134: Network Extension provider deployment](technotes/tn3134-network-extension-provider-deployment.md)
- [TN3187: Migrating to the UIKit scene-based life cycle](technotes/tn3187-migrating-to-the-uikit-scene-based-life-cycle.md)
- [TN3188: Troubleshooting In-App Purchases availability in the App Store](technotes/tn3188-troubleshooting-in-app-purchases-availability-in-the-app-store.md)
- [TN3186: Troubleshooting In-App Purchases availability in the sandbox](technotes/tn3186-troubleshooting-in-app-purchases-availability-in-the-sandbox.md)
- [TN3185: Troubleshooting In-App Purchases availability in Xcode](technotes/tn3185-troubleshooting-in-app-purchases-availability-in-xcode.md)
- [TN3182: Adding privacy tracking keys to your privacy manifest](technotes/tn3182-adding-privacy-tracking-keys-to-your-privacy-manifest.md)
- [TN3183: Adding required reason API entries to your privacy manifest](technotes/tn3183-adding-required-reason-api-entries-to-your-privacy-manifest.md)
- [TN3184: Adding data collection details to your privacy manifest](technotes/tn3184-adding-data-collection-details-to-your-privacy-manifest.md)
- [TN3181: Debugging an invalid privacy manifest](technotes/tn3181-debugging-invalid-privacy-manifest.md)
- [TN3180: Reverting to App Store Server Notifications V1](technotes/tn3180-reverting-app-store-server-notifications-v1.md)
- [TN3178: Checking for and resolving build UUID problems](technotes/tn3178-checking-for-and-resolving-build-uuid-problems.md)
- [TN3177: Understanding alternate audio track groups in movie files](technotes/tn3177-understanding-alternate-audio-track-groups-in-movie-files.md)
- [TN3176: Troubleshooting Apple Pay payment processing issues](technotes/tn3176-troubleshooting-apple-pay-payment-processing-issues.md)
- [TN3175: Diagnosing issues with displaying the Apple Pay button on your website](technotes/tn3175-diagnosing-issues-with-displaying-the-apple-pay-button-on-your-website.md)
- [TN3174: Diagnosing issues with the Apple Pay payment sheet on your website](technotes/tn3174-diagnosing-issues-with-the-apple-pay-payment-sheet-on-your-website.md)
- [TN3173: Troubleshooting issues with your Apple Pay merchant identifier configuration](technotes/tn3173-troubleshooting-issues-with-your-apple-pay-merchant-id-configuration.md)
- [TN3168: Making your App Clip available in the App Store](technotes/tn3168-making-your-app-clip-available-app-store.md)
- [TN3124: Debugging coordinate space issues](technotes/tn3124-debugging-coordinate-transformations.md)
- [TN3158: Resolving Xcode 15 device connection issues](technotes/tn3158-resolving-xcode-15-device-connection-issues.md)
- [TN3165: Packet Filter is not API](technotes/tn3165-packet-filter-is-not-api.md)
- [TN3164: Debugging the synchronization of NSPersistentCloudKitContainer](technotes/tn3164-debugging-the-synchronization-of-nspersistentcloudkitcontainer.md)
- [TN3163: Understanding the synchronization of NSPersistentCloudKitContainer](technotes/tn3163-understanding-the-synchronization-of-nspersistentcloudkitcontainer.md)
- [TN3161: Inside Code Signing: Certificates](technotes/tn3161-inside-code-signing-certificates.md)
- [TN3162: Understanding CloudKit throttles](technotes/tn3162-understanding-cloudkit-throttles.md)
- [TN3159: Migrating Sign in with Apple users for an app transfer](technotes/tn3159-migrating-sign-in-with-apple-users-for-an-app-transfer.md)
- [TN3156: Create rich previews for Messages](technotes/tn3156-create-rich-previews-for-messages.md)
- [TN3157: Updating your watchOS project for SwiftUI and WidgetKit](technotes/tn3157-updating-your-watchos-project-for-swiftui-and-widgetkit.md)
- [TN3155: Debugging universal links](technotes/tn3155-debugging-universal-links.md)
- [TN3138: Handling App Store receipt signing certificate changes](technotes/tn3138-handling-app-store-receipt-signing-certificate-changes.md)
- [TN3154: Adopting SwiftUI navigation split view](technotes/tn3154-adopting-swiftui-navigation-split-view.md)
- [TN3153: Adopting API changes for EventKit in iOS 17, macOS 14, and watchOS 10](technotes/tn3153-adopting-api-changes-for-eventkit-in-ios-macos-and-watchos.md)
- [TN3152: Migrating to the latest Calendar access levels](technotes/tn3152-migrating-to-the-latest-calendar-access-levels.md)
- [TN3149: Fetching Contacts change history events](technotes/tn3149-fetching-change-history-events.md)
- [TN3150: Getting ready for dataless files](technotes/tn3150-getting-ready-for-data-less-files.md)
- [TN3117: Resolving architecture build errors on Apple silicon](technotes/tn3117-resolving-build-errors-for-apple-silicon.md)
- [TN3147: Migrating to the latest notarization tool](technotes/tn3147-migrating-to-the-latest-notarization-tool.md)
- [TN3145: HDR video metadata](technotes/tn3145-hdr-video-metadata.md)
- [TN3133: Packaging a Metal renderer](technotes/tn3133-packaging-a-renderer.md)
- [TN3136: AVAudioConverter - performing sample rate conversions](technotes/tn3136-avaudioconverter-performing-sample-rate-conversions.md)
- [TN3135: Low-level networking on watchOS](technotes/tn3135-low-level-networking-on-watchos.md)
- [TN3128: Starting SharePlay without an existing FaceTime call](technotes/tn3128-starting-shareplay-without-an-existing-facetime-call.md)
- [TN3132: Changes to EventKit and EventKitUI in iOS 16](technotes/tn3132-changes-eventkit-and-eventkitui-in-ios16.md)
- [TN3130: Changes to EventKit in macOS Ventura 13](technotes/tn3130-changes-to-eventkit-in-macos13-ventura.md)
- [TN3129: Resolving build errors from helper tools in Xcode Cloud and other build environments](technotes/tn3129-resolving-build-errors-from-helper-tools-in-xcode-cloud.md)
- [TN3125: Inside Code Signing: Provisioning Profiles](technotes/tn3125-inside-code-signing-provisioning-profiles.md)
- [TN3126: Inside Code Signing: Hashes](technotes/tn3126-inside-code-signing-hashes.md)
- [TN3127: Inside Code Signing: Requirements](technotes/tn3127-inside-code-signing-requirements.md)
- [TN3122: Receipt validation with the App Store fails with a non-zero error code](technotes/tn3122-receipt-validation-with-the-app-store-fails-with-a-non-zero-error-code.md)
- [TN3113: Testing and debugging XPC code with an anonymous listener](technotes/tn3113-testing-xpc-code-with-an-anonymous-listener.md)
- [TN3121: Selecting a pixel format for an AVCaptureVideoDataOutput](technotes/tn3121-selecting-a-pixel-format-for-an-avcapturevideodataoutput.md)
- [TN3123: Refactoring your storyboard](technotes/tn3123-refactoring-your-storyboard.md)
- [TN3120: Expected use cases for Network Extension packet tunnel providers](technotes/tn3120-expected-use-cases-for-network-extension-packet-tunnel-providers.md)
- [TN3106: Customizing the appearance of UINavigationBar](technotes/tn3106-customizing-uinavigationbar-appearance.md)
- [TN3105: Customizing the UIKit status bar style](technotes/tn3105-customizing-uistatusbar-syle.md)
- [TN3118: Debugging your app’s launch screen](technotes/tn3118-debugging-your-apps-launch-screen.md)
- [TN3107: Resolving Sign in with Apple response errors](technotes/tn3107-resolving-sign-in-with-apple-response-errors.md)
- [TN3110: Resolving generic Xcode archive issue](technotes/tn3110-resolving-generic-xcode-archive-issue.md)
- [TN3109: Resolving common archiving issues](technotes/tn3109-resolving-common-archiving-issues.md)
- [TN3108: Viewing the interface of your Swift code](technotes/tn3108-viewing-the-interface-of-your-swift-code.md)
- [TN3104: Recording video in Apple ProRes](technotes/tn3104-recording-video-in-apple-prores.md)
- [TN3103: Apple Pay on the Web troubleshooting guide](technotes/tn3103-apple-pay-on-the-web-troubleshooting-guide.md)
- [TN3102: HTTP/3 in your app](technotes/tn3102-http3-in-your-app.md)
