View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Code
  • Découvrez les ressources d’arrière-plan hébergées par Apple

    En s'appuyant sur les ressources d'arrière-plan, cette session présentera la nouvelle possibilité de télécharger des packs de contenu pour les jeux et autres applications. Découvrez comment Apple peut héberger ces packs de ressources pour vous ou comment gérer les options d'auto-hébergement. Nous nous pencherons sur l'intégration de l'API native et les implémentations correspondantes de l'App Store, en vous fournissant les outils nécessaires pour améliorer la diffusion de contenu et l'expérience utilisateur de votre app.

    Chapitres

    • 0:00 - Introduction
    • 1:01 - Nouveautés de Background Assets
    • 7:32 - Développement d’exemples d’app
    • 17:24 - Bêta-test et distribution

    Ressources

    • Testing asset packs locally
    • Maximum build file sizes
    • Overview of Apple-hosted asset packs
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC25

    • Automatisez votre processus de développement avec l’API App Store Connect
    • Nouveautés dans App Store Connect

    WWDC23

    • What’s new in Background Assets
  • Rechercher dans cette vidéo…
    • 8:26 - Fill out the manifest

      {
      	"assetPackID": "[Asset-Pack ID]",
      	"downloadPolicy": {
      		"essential": { // Possible keys: “essential”, “prefetch”, or “onDemand”
      			// Essential and prefetch download policies require a list of installation event types. For an on-demand download policy, the value for the “onDemand” key must be an empty object.
      			"installationEventTypes": [
      				// Remove undesired elements from this array.
      				"firstInstallation",
      				"subsequentUpdate"
      			]
      		}
      	},
      	"fileSelectors": [
      		// You can add as many file and/or directory selectors as you want.
      		{
      			"file": "[Path to File]"
      		},
      		{
      			"directory": "[Path to Directory]"
      		}
      	],
      	"platforms": [
      		// Remove undesired elements from this array.
      		"iOS",
      		"macOS",
      		"tvOS",
      		"visionOS"
      	]
      }
    • 10:44 - Add a downloader extension

      import BackgroundAssets
      import ExtensionFoundation
      import StoreKit
      
      @main
      struct DownloaderExtension: StoreDownloaderExtension {
      	
      	func shouldDownload(_ assetPack: AssetPack) -> Bool {
      		return true
      	}
      	
      }
    • 11:39 - Download an asset pack

      let assetPack = try await AssetPackManager.shared.assetPack(withID: "Tutorial")
      
      // Await status updates for progress information
      let statusUpdates = AssetPackManager.shared.statusUpdates(forAssetPackWithID: "Tutorial")
      Task {
      	for await statusUpdate in statusUpdates {
      		// …
        }
      }
      
      // Download the asset pack
      try await AssetPackManager.shared.ensureLocalAvailability(of: assetPack)
    • 12:22 - Receive download status updates in Objective-C

      #import <BackgroundAssets/BackgroundAssets.h>
      
      @interface ManagedAssetPackDownloadDelegate : NSObject <BAManagedAssetPackDownloadDelegate>
      
      @end
      
      @implementation ManagedAssetPackDownloadDelegate
      
      - (void)downloadOfAssetPackBegan:(BAAssetPack *)assetPack { /* … */ }
      
      - (void)downloadOfAssetPackPaused:(BAAssetPack *)assetPack { /* … */ }
      
      - (void)downloadOfAssetPackFinished:(BAAssetPack *)assetPack { /* … */ }
      
      - (void)downloadOfAssetPack:(BAAssetPack *)assetPack hasProgress:(NSProgress *)progress { /* … */ }
      
      - (void)downloadOfAssetPack:(BAAssetPack *)assetPack failedWithError:(NSError *)error { /* … */ }
      
      @end
    • 12:29 - Attach the delegate in Objective-C

      static void attachDelegate(ManagedAssetPackDownloadDelegate *delegate) {
      	[[BAAssetPackManager sharedManager] setDelegate:delegate];
      }
    • 12:33 - Cancel an asset-pack download

      let statusUpdates = AssetPackManager.shared.statusUpdates(forAssetPackWithID: "Tutorial")
      for await statusUpdate in statusUpdates {
      	if case .downloading(_, let progress) = statusUpdate {
      		progress.cancel()
      	}
      }
    • 12:41 - Use an asset pack

      // Read a file into memory
      let videoData = try AssetPackManager.shared.contents(at: "Videos/Introduction.m4v")
      
      // Open a file descriptor
      let videoDescriptor = try AssetPackManager.shared.descriptor(for: "Videos/Introduction.m4v")
      defer {
      	do {
      		try videoDescriptor.close()
      	} catch {
      		// …
      	}
      }
    • 13:56 - Remove an asset pack

      // Remove the asset pack
      try await AssetPackManager.shared.remove(assetPackWithID: "Tutorial")
      
      // Redownload the asset pack
      let assetPack = try await AssetPackManager.shared.assetPack(withID: "Tutorial")
      try await AssetPackManager.shared.ensureLocalAvailability(of: assetPack)
    • 14:53 - Info.plist

      <key>BAAppGroupID</key>
      <string>group.com.naturelab.thecoast</string>
      <key>BAHasManagedAssetPacks</key>
      <true/>
      <key>BAUsesAppleHosting</key>
      <true/>
    • 0:00 - Introduction
    • En savoir plus sur Background Assets ・・ une nouvelle manière de distribuer les ressources d’app sur l’App Store. Découvrez les dernières technologies de diffusion de ressources, les nouvelles API Swift et Objective-C, et apprenez à intégrer ces fonctionnalités dans iOS, iPadOS, macOS, tvOS et visionOS. L’hébergement des ressources par Apple, y compris la préparation des tests bêta et la distribution sur l’App Store, est également abordé.

    • 1:01 - Nouveautés de Background Assets
    • Background Assets optimise l’expérience de lancement de l’app, car cette technologie permet de télécharger et de mettre à jour les ressources de l’app séparément de l’app principale. Cette approche permet d’utiliser l’app immédiatement, le téléchargement du contenu supplémentaire s’effectuant en arrière-plan. Il existe essentiellement trois stratégies de téléchargement des packs de ressources : Essentiel, Préchargement et À la demande. Vous pouvez héberger vos packs de ressources sur vos serveurs ou utiliser le nouveau service de ressources d’arrière-plan hébergées par Apple, qui offre 200 Go inclus dans votre abonnement au programme Apple Developer Program. Managed Background Assets remplace la technologie obsolète Ressources sur requête. Elle offre davantage de contrôle et de flexibilité, vous permettant ainsi d’optimiser les performances des apps et de renforcer l’engagement des utilisateurs et utilisatrices. Le système gère automatiquement les téléchargements, les mises à jour et la compression, ce qui facilite l’implémentation.

    • 7:32 - Développement d’exemples d’app
    • Pour utiliser Managed Background Assets dans une app, vous devez créer des packs de ressources à l’aide d’un nouvel outil de packaging disponible pour macOS, Linux et Windows. Cet outil génère un fichier manifeste JSON dans lequel vous spécifierez l’ID du pack de ressources, la stratégie de téléchargement, les plateformes prises en charge et les fichiers à inclure à l’aide de sélecteurs de fichiers. Vous pouvez configurer la stratégie de téléchargement afin de garantir que les ressources essentielles sont disponibles localement avant le lancement de l’app, ce qui limitera les téléchargements aux premières installations. Une fois le fichier manifeste renseigné, l’outil de packaging génère une archive compressée. Pour intégrer le pack de ressources dans l’app, ajoutez une extension de téléchargement dans Xcode, qui planifie le téléchargement des packs de ressources en arrière-plan. Le système fournit une extension de téléchargement complète, qui prend en charge les téléchargements automatiques et les mises à jour. Accédez aux fichiers téléchargés dans l’app principale à l’aide d’AssetPackManager, en vous assurant de leur disponibilité locale et en attendant les mises à jour de statut si nécessaire, pour offrir une expérience utilisateur fluide avec une gestion optimisée des ressources. Pour utiliser le framework Background Assets, le protocole délégué doit être associé à la propriété de délégué du gestionnaire de packs de ressources partagées. Les mises à jour du statut de téléchargement fournissent des structures de progression qui offrent la possibilité d’annuler les téléchargements si nécessaire. Une fois qu’un pack de ressources est prêt à être utilisé localement, c’est-à-dire si la méthode ensureLocalAvailability(of:) ne retourne aucune erreur, les fichiers peuvent être lus à l’aide des méthodes contents(at:searchingInAssetPackWithID:options:) ou descriptor(for:searchingInAssetPackWithID:). Le système gère automatiquement les mises à jour et le stockage des packs de ressources, mais il est recommandé de supprimer manuellement ceux qui sont inutilisés, afin de libérer de l’espace. Pour permettre la coordination entre l’app principale et l’extension de téléchargement, vous devez les ajouter au même groupe d’apps et configurer des clés Info.plist spécifiques. À des fins de test, un serveur fictif est fourni, qui requiert un certificat SSL. Saisissez l’URL de base du serveur fictif dans Dérogations de développement sur les appareils de test. Une fois configurée, l’app télécharge les packs de ressources depuis le serveur fictif durant les tests.

    • 17:24 - Bêta-test et distribution
    • Pour préparer une app en vue d’un test bêta sur TestFlight et d’une distribution sur l’App Store, vous devez charger le fichier binaire et les packs de ressources de l’app sur App Store Connect. Vous pouvez charger les packs de ressources via différentes méthodes, par exemple l’app Transporter pour macOS, qui offre une interface glisser-déposer, ou les API REST App Store Connect pour un contrôle et une automatisation complets. L’utilisation des API comprend trois principales étapes : création d’un enregistrement de pack de ressources, création d’un enregistrement de version et chargement de l’archive. Une fois le pack de ressources traité, vous pouvez le soumettre pour procéder à des tests internes ou externes dans TestFlight. Une fois les tests réussis, vous pouvez soumettre la version du pack de ressources au service Vérification des apps, en vue de sa distribution sur l’App Store. Vous pouvez surveiller la progression et le statut des chargements, des soumissions et des vérifications via App Store Connect ou les API.

Developer Footer

  • Vidéos
  • WWDC25
  • Découvrez les ressources d’arrière-plan hébergées par Apple
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines