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
 

Vídeos

Abrir menu Fechar menu
  • Coleções
  • Todos os vídeos
  • Sobre

Mais vídeos

  • Sobre
  • Resumo
  • Código
  • Descubra os Assets em segundo plano hospedados pela Apple

    Com base nos Assets em segundo plano, esta sessão apresentará o novo recurso para baixar pacotes de assets de conteúdo para jogos e outros apps. Saiba como a Apple pode hospedar esses pacotes de assets para você ou como gerenciar opções de hospedagem própria. Vamos nos aprofundar na integração com a API nativa e nas implementações correspondentes na App Store, fornecendo as ferramentas para aprimorar a entrega de conteúdo e a experiência dos usuários do seu app.

    Capítulos

    • 0:00 - Introdução
    • 1:01 - Novidades dos Assets em segundo plano
    • 7:32 - Desenvolvimento de um app de exemplo
    • 17:24 - Teste beta e distribuição

    Recursos

    • Testing asset packs locally
    • Maximum build file sizes
    • Overview of Apple-hosted asset packs
      • Vídeo HD
      • Vídeo SD

    Vídeos relacionados

    WWDC25

    • Automatize seu processo de desenvolvimento com a API do App Store Connect
    • Novidades do App Store Connect

    WWDC23

    • What’s new in Background Assets
  • Buscar neste vídeo...
    • 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 - Introdução
    • Conheça os Assets em segundo plano, uma nova forma de distribuir assets de apps na App Store. Revise as tecnologias de entrega de assets, conheça as APIs em Swift e Objective-C e saiba como integrar esses recursos no iOS, iPadOS, macOS, tvOS e visionOS. A hospedagem de assets pela Apple, incluindo a preparação para testes Beta e a distribuição pela App Store, também é abordada.

    • 1:01 - Novidades dos Assets em segundo plano
    • Os Assets em segundo plano melhoram a inicialização do app ao permitir que você baixe e atualize os assets do app separadamente do app principal. Essa abordagem permite que o app seja usado imediatamente, enquanto o conteúdo adicional é baixado em segundo plano. Há três políticas de download para os pacotes de assets: Essential, Prefetch e On-demand. Hospede seus pacotes de assets em seus próprios servidores ou utilize o novo serviço Apple Hosted Background Assets, que oferece 200 GB incluídos na sua assinatura do Apple Developer Program. Os Assets Gerenciados em Segundo Plano (Managed Background Assets) substitui a tecnologia descontinuada Recursos sob demanda (On-Demand Resources). Ele oferece mais controle e flexibilidade, otimizando o desempenho do app e o engajamento dos usuários. O sistema gerencia os downloads, atualizações e compactação, facilitando a implementação.

    • 7:32 - Desenvolvimento de um app de exemplo
    • Para usar os Assets Gerenciados em Segundo Plano em um app, crie pacotes de assets com uma ferramenta de empacotamento para macOS, Linux e Windows. A ferramenta cria um arquivo de manifesto JSON para definir o ID do pacote, política de download, plataformas compatíveis e arquivos incluídos via seletores. Configure a política de download para que os assets estejam disponíveis antes da inicialização do app e limite os downloads às primeiras instalações. Após preencher o manifesto, a ferramenta de empacotamento gera um arquivo compactado. Para integrar o pacote de assets ao app, adicione uma extensão de download no Xcode, que agenda o download dos pacotes em segundo plano. O sistema oferece uma extensão de download completa, que dá suporte a downloads e atualizações automáticos. Acesse os arquivos baixados no app principal usando o 'AssetPackManager', garantindo a disponibilidade local e aguardando atualizações de status, para oferecer uma experiência contínua com gerenciamento de assets otimizado. Para usar o framework Assets em segundo plano, o protocolo delegado deve ser atribuído à propriedade delegate do gerenciador do pacote de assets compartilhado. As atualizações de status de download oferecem estruturas de progresso para cancelar os downloads, se necessário. Quando um pacote de assets estiver pronto para uso, indicado pelo retorno de ensureLocalAvailability(of:) sem erro, os arquivos poderão ser acessados usando 'contents(at:searchingInAssetPackWithID:options:)' ou 'descriptor(for:searchingInAssetPackWithID:)'. O sistema gerencia as atualizações e o armazenamento dos pacotes de assets, mas é recomendável remover os pacotes não usados para liberar espaço. Para permitir a coordenação entre o app principal e a extensão de download, adicione-os ao mesmo grupo de apps e configure chaves específicas no Info.plist. Para testes, é fornecido um servidor fictício que requer um certificado SSL. Insira o URL base do servidor fictício em Substituições de desenvolvimento nos dispositivos de teste. Uma vez configurado, o app baixa os pacotes de assets do servidor fictício durante os testes.

    • 17:24 - Teste beta e distribuição
    • Para preparar um app para testes Beta no TestFlight e distribuição na App Store, envie o binário do app e os pacotes de assets para o App Store Connect. Envie os pacotes de assets usando vários métodos, incluindo o app Transporter para macOS, que oferece uma interface de arrastar e soltar, ou as APIs REST do App Store Connect para controle e automação. O uso das APIs envolve três etapas principais: criar um registro do pacote de assets, criar um registro de versão e enviar o arquivo compactado. Após o processamento do pacote de assets, envie-o para testes internos ou externos no TestFlight. Após o teste bem-sucedido, envie a versão do pacote de assets para a App Review para distribuição na App Store. Monitore o progresso e o status dos uploads, envios e revisões pelo App Store Connect ou pelas APIs.

Developer Footer

  • Vídeos
  • WWDC25
  • Descubra os Assets em segundo plano hospedados pela 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