Skip to main content
Technotes
All technotes — newest first (80)
- TN3212: Adopting gesture recognizers for Sidecar touch supportArticle— Use gesture recognizers to handle Sidecar touch input and update your event-hand...
- TN3211: Resolving SwiftUI source incompatibilities for State and ContentBuilderArticle— Update existing code for two foundational changes in SwiftUI built with Xcode 27...
- TN3210: Optimizing your app for iPhone MirroringArticle— Test your app and improve compatibility with iPhone Mirroring.
- TN3208: Preparing your app’s launch screen to meet App Store requirementsArticle— Understand the launch screen requirement for App Store submission starting in iO...
- TN3206: Updating Apple Pay certificatesArticle— Learn how to create, manage, and rotate Apple Pay certificates to maintain unint...
- TN3205: Low-latency communication with RDMA over ThunderboltArticle— Learn how to use RDMA over Thunderbolt to enable low-latency communication betwe...
- TN3194: Handling account deletions and revoking tokens for Sign in with AppleArticle— Learn the best techniques for managing Sign in with Apple user sessions and resp...
- TN3193: Managing the on-device foundation model’s context windowArticle— Learn how to budget for the context window limit of Apple’s on-device foundation...
- TN3192: Migrating your iPad app from the deprecated UIRequiresFullScreen keyArticle— Support iPad multitasking and dynamic resizing while updating your app to remove...
- TN3191: IMAP extensions supported by Mail for iOS, iPadOS, and visionOSArticle— Learn which extensions to the RFC 3501 IMAP protocol are supported by Mail for i...
- TN3190: USB audio device design considerationsArticle— Learn the best techniques for designing devices that conform to the USB Audio De...
- TN3189: Managing Mail background traffic loadArticle— Identify iOS Mail background traffic and manage its impact on your IMAP server.
- TN3188: Troubleshooting In-App Purchases availability in the App StoreArticle— Verify your In-App Purchases are approved and available for sale in the App Stor...
- TN3187: Migrating to the UIKit scene-based life cycleArticle— Update your app to receive scene-based life-cycle events and manage your user in...
- TN3186: Troubleshooting In-App Purchases availability in the sandboxArticle— Identify common configurations that make your In-App Purchases unavailable in th...
- TN3185: Troubleshooting In-App Purchases availability in XcodeArticle— Inspect your active StoreKit configuration file for unexpected configurations.
- TN3184: Adding data collection details to your privacy manifestArticle— Declare the data your app or third-party SDK collects in a privacy manifest.
- TN3183: Adding required reason API entries to your privacy manifestArticle— Declare the APIs that can potentially fingerprint devices in your app or third-p...
- TN3182: Adding privacy tracking keys to your privacy manifestArticle— Declare the tracking domains you use in your app or third-party SDK in a privacy...
- TN3181: Debugging an invalid privacy manifestArticle— Identify common configurations that cause unsuccessful privacy manifest validati...
- TN3180: Reverting to App Store Server Notifications V1Article— Migrate from version 2 to version 1 of App Store Server Notifications using the ...
- TN3179: Understanding local network privacyArticle— Learn how local network privacy affects your software.
- TN3178: Checking for and resolving build UUID problemsArticle— Ensure that every Mach-O image has a UUID, and that every distinct Mach-O image ...
- TN3177: Understanding alternate audio track groups in movie filesArticle— Learn how alternate groups collect audio tracks, and how to choose which audio t...
- TN3176: Troubleshooting Apple Pay payment processing issuesArticle— Diagnose errors that occur when processing Apple Pay payments, identify common c...
- TN3175: Diagnosing issues with displaying the Apple Pay button on your websiteArticle— Diagnose common errors received while displaying the Apple Pay button on your we...
- TN3174: Diagnosing issues with the Apple Pay payment sheet on your websiteArticle— Diagnose errors received while presenting the Apple Pay payment sheet on your we...
- TN3173: Troubleshooting issues with your Apple Pay merchant identifier configurationArticle— Diagnose errors due to invalid Apple Pay merchant identifier configurations by i...
- TN3168: Making your App Clip available in the App StoreArticle— Learn how to configure your App Clip to prevent it from being unavailable in the...
- TN3165: Packet Filter is not APIArticle— Plan your migration from Packet Filter to Network Extension.
- TN3164: Debugging the synchronization of NSPersistentCloudKitContainerArticle— Identify and resolve synchronization issues when working with NSPersistentCloudK...
- TN3163: Understanding the synchronization of NSPersistentCloudKitContainerArticle— Explore the details inside the synchronization of NSPersistentCloudKitContainer ...
- TN3162: Understanding CloudKit throttlesArticle— Learn how to identify and handle CloudKit throttles.
- TN3161: Inside Code Signing: CertificatesArticle— Learn how code signing uses certificates to identify code authors.
- TN3159: Migrating Sign in with Apple users for an app transferArticle— Migrate existing Sign in with Apple user identifiers and private email relay add...
- TN3158: Resolving Xcode 15 device connection issuesArticle— Identify software preventing Xcode 15 from connecting to Apple devices, and modi...
- TN3157: Updating your watchOS project for SwiftUI and WidgetKitArticle— Update your watchOS app project to adopt SwiftUI, WidgetKit, and other modern fe...
- TN3156: Create rich previews for MessagesArticle— Learn best practices for creating rich text and image previews for display in th...
- TN3155: Debugging universal linksArticle— Investigate why your universal links are opening in a web browser instead of you...
- TN3154: Adopting SwiftUI navigation split viewArticle— Use navigation split view to enable two and three column navigation in your Swif...
- TN3153: Adopting API changes for EventKit in iOS 17, macOS 14, and watchOS 10Article— Test your existing apps against EventKit API latest changes.
- TN3152: Migrating to the latest Calendar access levelsArticle— Follow these guidelines to update your app to use the new Calendar access levels...
- TN3151: Choosing the right networking APIArticle— Learn which networking API is best for you.
- TN3150: Getting ready for dataless filesArticle— Understand dataless files and how to minimize the performance impact as the syst...
- TN3149: Fetching Contacts change history eventsArticle— Learn how to fetch and process the most recent changes to the Contacts database.
- TN3147: Migrating to the latest notarization toolArticle— Migrate your notarization workflows to notarytool from the deprecated altool.
- TN3145: HDR video metadataArticle— Learn about the usage and requirements of “Ambient Viewing Environment” metadata...
- TN3138: Handling App Store receipt signing certificate changesArticle— Ensure that your app’s local receipt validation is compatible with intermediate ...
- TN3137: On Mac keychain APIs and implementationsArticle— Learn how the keychain on macOS differs from other Apple platforms.
- TN3136: AVAudioConverter - performing sample rate conversionsArticle— Use AVAudioConverter to perform sample rate conversions between PCM audio buffer...
- TN3135: Low-level networking on watchOSArticle— Learn about the supported use cases for low-level networking on watchOS.
- TN3134: Network Extension provider deploymentArticle— Explore the platforms, packaging, OS versions, and device configurations for Net...
- TN3133: Packaging a Metal rendererArticle— Distribute a Metal renderer in a Swift package.
- TN3132: Changes to EventKit and EventKitUI in iOS 16Article— Test your apps against EventKit and EventKitUI API changes in iOS 16.
- TN3130: Changes to EventKit in macOS Ventura 13Article— Test your apps against EventKit API changes in macOS Ventura 13.
- TN3129: Resolving build errors from helper tools in Xcode Cloud and other build environmentsArticle— Review common causes for failing Xcode Cloud builds that originate from helper t...
- TN3128: Starting SharePlay without an existing FaceTime callArticle— Use the share sheet or group activity sharing controller to start SharePlay dire...
- TN3127: Inside Code Signing: RequirementsArticle— Explore how macOS uses code signing requirements to reason about code identity.
- TN3126: Inside Code Signing: HashesArticle— Look inside a code signature to see how it uses hashes to protect the code’s exe...
- TN3125: Inside Code Signing: Provisioning ProfilesArticle— Learn how provisioning profiles enable third-party code to run on Apple platform...
- TN3124: Debugging coordinate space issuesArticle— Learn techniques to help debug any coordinate space issue.
- TN3123: Refactoring your storyboardArticle— Learn strategies and techniques for refactoring a single storyboard into multipl...
- TN3122: Receipt validation with the App Store fails with a non-zero error codeArticle— Identify common configurations that cause unsuccessful receipt validation with t...
- TN3121: Selecting a pixel format for an AVCaptureVideoDataOutputArticle— Learn how to choose the best output pixel format for your app.
- TN3120: Expected use cases for Network Extension packet tunnel providersArticle— Learn the expected use cases for Network Extension packet tunnel providers, and ...
- TN3118: Debugging your app’s launch screenArticle— Understand why your app’s launch screen is not displayed or updated.
- TN3117: Resolving architecture build errors on Apple siliconArticle— Update your app’s architecture build settings to support building macOS, iOS, wa...
- TN3115: Bluetooth State Restoration app relaunch rulesArticle— Learn about the conditions under which an iOS app will be relaunched by Bluetoot...
- TN3113: Testing and debugging XPC code with an anonymous listenerArticle— Use an anonymous XPC listener to simplify your XPC testing and debugging.
- TN3111: iOS Wi-Fi API overviewArticle— Explore the various Wi-Fi APIs available on iOS and their expected use cases.
- TN3110: Resolving generic Xcode archive issueArticle— Identify common configurations that cause a generic Xcode archive.
- TN3109: Resolving common archiving issuesArticle— Handle common issues that arise while archiving apps.
- TN3108: Viewing the interface of your Swift codeArticle— Learn how to navigate to the interface file of a Swift implementation file.
- TN3107: Resolving Sign in with Apple response errorsArticle— Diagnose errors received by the Sign in with Apple client, or its server infrast...
- TN3106: Customizing the appearance of UINavigationBarArticle— Adopt UINavigationBarAppearance for a navigation bar background color that’s con...
- TN3105: Customizing the UIKit status bar styleArticle— Configure the device’s status bar style to work well with your app’s user interf...
- TN3104: Recording video in Apple ProResArticle— Configure pieces of an AVCaptureSession to capture video in Apple ProRes.
- TN3103: Apple Pay on the Web troubleshooting guideArticle— Troubleshooting guide for implementing Apple Pay on the Web.
- TN3102: HTTP/3 in your appArticle— Get started with iOS 15’s new HTTP/3 support.
- Technotes— Learn about specific development topics through these in-depth technical article...