Skip to main content
Technotes
All technotes — newest first (81)
- TN3213: Moving from Multipeer Connectivity to Network frameworkTechnote— Learn how to migrate your Multipeer Connectivity app to Network framework.
- TN3212: Adopting gesture recognizers for Sidecar touch supportTechnote— Use gesture recognizers to handle Sidecar touch input and update your event-hand...
- TN3211: Resolving SwiftUI source incompatibilities for State and ContentBuilderTechnote— Update existing code for two foundational changes in SwiftUI built with Xcode 27...
- TN3210: Optimizing your app for iPhone MirroringTechnote— Test your app and improve compatibility with iPhone Mirroring.
- TN3208: Preparing your app’s launch screen to meet App Store requirementsTechnote— Understand the launch screen requirement for App Store submission starting in iO...
- TN3206: Updating Apple Pay certificatesTechnote— Learn how to create, manage, and rotate Apple Pay certificates to maintain unint...
- TN3205: Low-latency communication with RDMA over ThunderboltTechnote— Learn how to use RDMA over Thunderbolt to enable low-latency communication betwe...
- TN3194: Handling account deletions and revoking tokens for Sign in with AppleTechnote— Learn the best techniques for managing Sign in with Apple user sessions and resp...
- TN3193: Managing the on-device foundation model’s context windowTechnote— Learn how to budget for the context window limit of Apple’s on-device foundation...
- TN3192: Migrating your iPad app from the deprecated UIRequiresFullScreen keyTechnote— Support iPad multitasking and dynamic resizing while updating your app to remove...
- TN3191: IMAP extensions supported by Mail for iOS, iPadOS, and visionOSTechnote— Learn which extensions to the RFC 3501 IMAP protocol are supported by Mail for i...
- TN3190: USB audio device design considerationsTechnote— Learn the best techniques for designing devices that conform to the USB Audio De...
- TN3189: Managing Mail background traffic loadTechnote— Identify iOS Mail background traffic and manage its impact on your IMAP server.
- TN3188: Troubleshooting In-App Purchases availability in the App StoreTechnote— Verify your In-App Purchases are approved and available for sale in the App Stor...
- TN3186: Troubleshooting In-App Purchases availability in the sandboxTechnote— Identify common configurations that make your In-App Purchases unavailable in th...
- TN3185: Troubleshooting In-App Purchases availability in XcodeTechnote— Inspect your active StoreKit configuration file for unexpected configurations.
- TN3184: Adding data collection details to your privacy manifestTechnote— Declare the data your app or third-party SDK collects in a privacy manifest.
- TN3183: Adding required reason API entries to your privacy manifestTechnote— Declare the APIs that can potentially fingerprint devices in your app or third-p...
- TN3182: Adding privacy tracking keys to your privacy manifestTechnote— Declare the tracking domains you use in your app or third-party SDK in a privacy...
- TN3181: Debugging an invalid privacy manifestTechnote— Identify common configurations that cause unsuccessful privacy manifest validati...
- TN3180: Reverting to App Store Server Notifications V1Technote— Migrate from version 2 to version 1 of App Store Server Notifications using the ...
- TN3179: Understanding local network privacyTechnote— Learn how local network privacy affects your software.
- TN3178: Checking for and resolving build UUID problemsTechnote— Ensure that every Mach-O image has a UUID, and that every distinct Mach-O image ...
- TN3177: Understanding alternate audio track groups in movie filesTechnote— Learn how alternate groups collect audio tracks, and how to choose which audio t...
- TN3176: Troubleshooting Apple Pay payment processing issuesTechnote— Diagnose errors that occur when processing Apple Pay payments, identify common c...
- TN3175: Diagnosing issues with displaying the Apple Pay button on your websiteTechnote— Diagnose common errors received while displaying the Apple Pay button on your we...
- TN3174: Diagnosing issues with the Apple Pay payment sheet on your websiteTechnote— Diagnose errors received while presenting the Apple Pay payment sheet on your we...
- TN3173: Troubleshooting issues with your Apple Pay merchant identifier configurationTechnote— Diagnose errors due to invalid Apple Pay merchant identifier configurations by i...
- TN3168: Making your App Clip available in the App StoreTechnote— Learn how to configure your App Clip to prevent it from being unavailable in the...
- TN3165: Packet Filter is not APITechnote— Plan your migration from Packet Filter to Network Extension.
- TN3164: Debugging the synchronization of NSPersistentCloudKitContainerTechnote— Identify and resolve synchronization issues when working with NSPersistentCloudK...
- TN3163: Understanding the synchronization of NSPersistentCloudKitContainerTechnote— Explore the details inside the synchronization of NSPersistentCloudKitContainer ...
- TN3162: Understanding CloudKit throttlesTechnote— Learn how to identify and handle CloudKit throttles.
- TN3161: Inside Code Signing: CertificatesTechnote— Learn how code signing uses certificates to identify code authors.
- TN3159: Migrating Sign in with Apple users for an app transferTechnote— Migrate existing Sign in with Apple user identifiers and private email relay add...
- TN3158: Resolving Xcode 15 device connection issuesTechnote— Identify software preventing Xcode 15 from connecting to Apple devices, and modi...
- TN3157: Updating your watchOS project for SwiftUI and WidgetKitTechnote— Update your watchOS app project to adopt SwiftUI, WidgetKit, and other modern fe...
- TN3156: Create rich previews for MessagesTechnote— Learn best practices for creating rich text and image previews for display in th...
- TN3155: Debugging universal linksTechnote— Investigate why your universal links are opening in a web browser instead of you...
- TN3154: Adopting SwiftUI navigation split viewTechnote— 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 10Technote— Test your existing apps against EventKit API latest changes.
- TN3152: Migrating to the latest Calendar access levelsTechnote— Follow these guidelines to update your app to use the new Calendar access levels...
- TN3151: Choosing the right networking APITechnote— Learn which networking API is best for you.
- TN3150: Getting ready for dataless filesTechnote— Understand dataless files and how to minimize the performance impact as the syst...
- TN3149: Fetching Contacts change history eventsTechnote— Learn how to fetch and process the most recent changes to the Contacts database.
- TN3147: Migrating to the latest notarization toolTechnote— Migrate your notarization workflows to notarytool from the deprecated altool.
- TN3145: HDR video metadataTechnote— Learn about the usage and requirements of “Ambient Viewing Environment” metadata...
- TN3138: Handling App Store receipt signing certificate changesTechnote— Ensure that your app’s local receipt validation is compatible with intermediate ...
- TN3137: On Mac keychain APIs and implementationsTechnote— Learn how the keychain on macOS differs from other Apple platforms.
- TN3136: AVAudioConverter - performing sample rate conversionsTechnote— Use AVAudioConverter to perform sample rate conversions between PCM audio buffer...
- TN3135: Low-level networking on watchOSTechnote— Learn about the supported use cases for low-level networking on watchOS.
- TN3134: Network Extension provider deploymentTechnote— Explore the platforms, packaging, OS versions, and device configurations for Net...
- TN3133: Packaging a Metal rendererTechnote— Distribute a Metal renderer in a Swift package.
- TN3132: Changes to EventKit and EventKitUI in iOS 16Technote— Test your apps against EventKit and EventKitUI API changes in iOS 16.
- TN3130: Changes to EventKit in macOS Ventura 13Technote— Test your apps against EventKit API changes in macOS Ventura 13.
- TN3129: Resolving build errors from helper tools in Xcode Cloud and other build environmentsTechnote— Review common causes for failing Xcode Cloud builds that originate from helper t...
- TN3128: Starting SharePlay without an existing FaceTime callTechnote— Use the share sheet or group activity sharing controller to start SharePlay dire...
- TN3127: Inside Code Signing: RequirementsTechnote— Explore how macOS uses code signing requirements to reason about code identity.
- TN3126: Inside Code Signing: HashesTechnote— Look inside a code signature to see how it uses hashes to protect the code’s exe...
- TN3125: Inside Code Signing: Provisioning ProfilesTechnote— Learn how provisioning profiles enable third-party code to run on Apple platform...
- TN3124: Debugging coordinate space issuesTechnote— Learn techniques to help debug any coordinate space issue.
- TN3123: Refactoring your storyboardTechnote— Learn strategies and techniques for refactoring a single storyboard into multipl...
- TN3122: Receipt validation with the App Store fails with a non-zero error codeTechnote— Identify common configurations that cause unsuccessful receipt validation with t...
- TN3121: Selecting a pixel format for an AVCaptureVideoDataOutputTechnote— Learn how to choose the best output pixel format for your app.
- TN3120: Expected use cases for Network Extension packet tunnel providersTechnote— Learn the expected use cases for Network Extension packet tunnel providers, and ...
- TN3118: Debugging your app’s launch screenTechnote— Understand why your app’s launch screen is not displayed or updated.
- TN3117: Resolving architecture build errors on Apple siliconTechnote— Update your app’s architecture build settings to support building macOS, iOS, wa...
- TN3115: Bluetooth State Restoration app relaunch rulesTechnote— Learn about the conditions under which an iOS app will be relaunched by Bluetoot...
- TN3113: Testing and debugging XPC code with an anonymous listenerTechnote— Use an anonymous XPC listener to simplify your XPC testing and debugging.
- TN3111: iOS Wi-Fi API overviewTechnote— Explore the various Wi-Fi APIs available on iOS and their expected use cases.
- TN3110: Resolving generic Xcode archive issueTechnote— Identify common configurations that cause a generic Xcode archive.
- TN3109: Resolving common archiving issuesTechnote— Handle common issues that arise while archiving apps.
- TN3108: Viewing the interface of your Swift codeTechnote— Learn how to navigate to the interface file of a Swift implementation file.
- TN3107: Resolving Sign in with Apple response errorsTechnote— Diagnose errors received by the Sign in with Apple client, or its server infrast...
- TN3106: Customizing the appearance of UINavigationBarTechnote— Adopt UINavigationBarAppearance for a navigation bar background color that’s con...
- TN3105: Customizing the UIKit status bar styleTechnote— Configure the device’s status bar style to work well with your app’s user interf...
- TN3104: Recording video in Apple ProResTechnote— Configure pieces of an AVCaptureSession to capture video in Apple ProRes.
- TN3103: Apple Pay on the Web troubleshooting guideTechnote— Troubleshooting guide for implementing Apple Pay on the Web.
- TN3102: HTTP/3 in your appTechnote— Get started with iOS 15’s new HTTP/3 support.
- Technotes— Learn about specific development topics through these in-depth technical article...
- Transitioning to the UIKit scene-based life cycleArticle— Adopt the scene-based life cycle to replace the app delegate life cycle in UIKit...