View in English

  • Apple 开发者
    • 入门汇总

    探索“入门汇总”

    • 概览
    • 学习
    • Apple Developer Program

    及时了解最新动态

    • 最新动态
    • 开发者你好
    • 平台

    探索“平台”

    • Apple 平台
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    • App Store

    精选

    • 设计
    • 分发
    • 游戏
    • 配件
    • 网页
    • Home
    • CarPlay 车载
    • 技术

    探索“技术”

    • 概览
    • Xcode
    • Swift
    • SwiftUI

    精选

    • 辅助功能
    • App Intents
    • Apple 智能
    • 游戏
    • 机器学习与 AI
    • 安全性
    • Xcode Cloud
    • 社区

    探索“社区”

    • 概览
    • “与 Apple 会面交流”活动
    • 社区主导的活动
    • 开发者论坛
    • 开源

    精选

    • WWDC
    • Swift Student Challenge
    • 开发者故事
    • App Store 大奖
    • Apple 设计大奖
    • Apple Developer Centers
    • 文档

    探索“文档”

    • 文档库
    • 技术概述
    • 示例代码
    • 《人机界面指南》
    • 视频

    发布说明

    • 精选更新
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • Apple tvOS
    • Xcode
    • 下载

    探索“下载”

    • 所有下载
    • 操作系统
    • 应用程序
    • 设计资源

    精选

    • Xcode
    • TestFlight
    • 字体
    • SF Symbols
    • Icon Composer
    • 支持

    探索“支持”

    • 概览
    • 帮助指南
    • 开发者论坛
    • “反馈助理”
    • 联系我们

    精选

    • 《开发者账户帮助》
    • 《App 审核指南》
    • 《App Store Connect 帮助》
    • 即将实行的要求
    • 协议和准则
    • 系统状态
  • 快速链接

    • 活动
    • 新闻
    • 论坛
    • 示例代码
    • 视频
 

视频

打开菜单 关闭菜单
  • 专题
  • 所有视频
  • 关于

更多视频

  • 简介
  • 概要
  • 代码
  • 通过 StoreKit 和后台资源解锁游戏内内容

    使用 Steam Asset Converter 和新的 Unity 插件,简化你的跨平台开发,并为 App 内购买项目提供更好的支持。了解如何通过特定于语言的资源包,精准地分发恰如所需的内容,从而让你的游戏更精简,并为玩家带来更出色的体验。

    章节

    • 0:01 - Introduction
    • 0:33 - Background Assets
    • 1:35 - Localized asset packs
    • 3:14 - Convert Steam depots to asset packs
    • 4:15 - Unity plug-ins
    • 5:52 - StoreKit and Background Assets sample code
    • 8:25 - Game presence
    • 9:10 - Next steps

    资源

    • Apple Unity Plug-Ins on GitHub
    • Background Assets
    • StoreKit
      • 高清视频
      • 标清视频

    相关视频

    WWDC26

    • 提升 App 在 App Store 上的表现

    WWDC25

    • 探索 Apple 托管的 Background Assets

    Meet with Apple

    • Chart your game's course to Apple platforms

    WWDC22

    • 即插即用:向你的 Unity 游戏项目添加 Apple 框架
  • 搜索此视频…
    • 3:06 - Asset pack manifest for a localized asset pack

      // Asset pack manifest
      
      {
         "assetPackID": "voice-english",
         "downloadPolicy": { /* … */ },
         "language": "en-US",
         "sourceRoot": ".",
         "fileSelectors": [ /* … */ ],
         "platforms": [ /* … */ ]
          //… 
      }
    • 3:27 - Convert a Steam depot to an asset pack manifest

      # Convert a Steam depot to an asset pack manifest
      xcrun ba-package convert --asset-pack-id voice-english --l en-US --on-demand voice-english.vdf -o voice-english.json
    • 3:28 - Convert an asset pack manifest to an asset pack archive

      # Convert an asset pack manifest to an asset pack archive
      xcrun ba-package voice-english.json -o voice-english.aar
    • 5:52 - Fetch and purchase products with the StoreKit plug-in

      // Fetch and purchase products with the StoreKit plug-in
      
      using UnityEngine;
      using Apple.StoreKit;
      
      async void Start() {
          var products = await Product.FetchProducts(new[] {
                  "com.thecoast.capecod"
          });
      }
    • 6:01 - Fetch and purchase products with the StoreKit plug-in

      // Fetch and purchase products with the StoreKit plug-in
      
      using UnityEngine;
      using Apple.StoreKit;
      
      async void Purchase(Product product) {
          var result = await product.Purchase();
          if (result.Result == PurchaseResult.ResultEnum.Success
              && result.TransactionVerification.IsVerified)
          {
              // Unlock access to purchased content
      
              result.TransactionVerification.SafePayload.Finish();
          }
      }
    • 6:23 - Listen for Transaction updates with the StoreKit plug-in

      // Listen for Transaction updates with the StoreKit plug-in
      
      using UnityEngine;
      using Apple.StoreKit;
      
      public static class TransactionListener {
          public static void Initialize() => Transaction.Updates += OnUpdate;
      
      
          async void OnUpdate(VerificationResult<Transaction> result) {
              if (!result.IsVerified) return;
              var verifiedTransaction = result.SafePayload;
      
              // Consumables are not in CurrentEntitlements, so handle them inline
              if (verifiedTransaction.ProductType == ProductType.ProductTypeEnum.Consumable) {
                  if (verifiedTransaction.RevocationDate != null) {
                      // Revoke the consumable identified by verifiedTransaction.ProductId
                  } else {
                      // Grant access to the consumable
                  }
              }else {
                  // Non-consumables and subscriptions: re-read CurrentEntitlements as source of truth
                  await foreach (var verificationResult in Transaction.GetCurrentEntitlements()) {
                      if (!verificationResult.IsVerified) continue;
                      // Grant access to the product
                  }
              }
              verifiedTransaction.Finish();
          }
      }
    • 7:13 - Download asset packs with the Background Assets plug-in

      // Download asset packs with the Background Assets plug-in
      
      using Apple.BackgroundAssets;
      using UnityEngine;
      
      async void LoadTutorial(string language) {
          try {
              string assetPackId = $"tutorial-{language}";
              AssetPackManifest manifest = await AssetPackManager.GetManifestAsync();
              AssetPack assetPack = manifest.GetAssetPack(assetPackId);
              CancellationTokenSource tokenSource = new CancellationTokenSource();
              _ = Task.Run(async () => {
                  await foreach (AssetPackManager.DownloadStatusUpdate statusUpdate in AssetPackManager.DownloadStatusUpdatesAsync(assetPackId)) { 
                  		// Update download progress in UI
                  }
              }, tokenSource.Token);
              await AssetPackManager.EnsureLocalAvailabilityOfAssetPackAsync(assetPack);
              tokenSource.Cancel();
              // Start tutorial with the locally available assets
          } catch (Exception exception) {
              // Handle the exception
          }
      }
    • 0:01 - Introduction
    • New tools for building games on Apple platforms: updates to Background Assets, new Unity plug-ins for In-App Purchase, and ways to enhance your presence on the App Store and Apple Games app.

    • 0:33 - Background Assets
    • Apple-Hosted Managed Background Assets save players time and storage by downloading asset packs only when needed. Now with Apple-hosting, up to 200 GB per app is included in the Developer Program.

    • 1:35 - Localized asset packs
    • Localized asset packs greatly reduce the size of assets that players need to download by allowing the system to identify the player’s preferred language selected in Settings and only deliver assets for your game in that language.

    • 3:14 - Convert Steam depots to asset packs
    • Learn how to bring your Steam depots into asset pack manifests and asset pack archives to ship along with your game on Apple platforms.

    • 4:15 - Unity plug-ins
    • Two new Apple Unity plug-ins: Background Assets and StoreKit expose C# APIs that bridge to the native frameworks. Build and test with Xcode 27, Python 3, and Unity 2022 LTS or later.

    • 5:52 - StoreKit and Background Assets sample code
    • Examples of how to use the C# version of the native StoreKit and Background Assets APIs in your game.

    • 8:25 - Game presence
    • Make your game stand out with new visuals for your product page header and search results.

    • 9:10 - Next steps
    • Ways to go further — upload localized asset packs in App Store Connect to reduce app size, adopt new Unity plug-ins, and highlight features with new image and video assets in the App Store and Apple Games app.

Developer Footer

  • 视频
  • WWDC26
  • 通过 StoreKit 和后台资源解锁游戏内内容
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • Apple 智能
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习与 AI
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • 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 Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    阅读最近新闻。
    获取 Apple Developer App。
    版权所有 © 2026 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则