Apple Developer onepage / WWDC26
#WWDC26#GameDev#Unity2026-07-06

Unity 遊戲上 Apple 平台:購買與資產下載 開始變成官方工作流

這支 short 濃縮兩個新 Unity plug-ins:StoreKit 與 Background Assets。完整 session 則說明 localized asset packs、Steam Asset Converter、交易驗證與下載測試如何串成移植管線。

// 一句話結論

Apple 正把 Unity 遊戲最麻煩的兩段整合,也就是 App Store 內購與 on-demand asset delivery,包成 C# 可用的官方 plug-ins,讓移植不只停在 graphics port,而能接到商務與內容分發。

Apple Developer · WWDC26 · Video ID: rVtYO1dnInw完整 session:Unlock in-game content with StoreKit and Background Assets
Content map

這支 short 指向四個移植問題

Commerce

StoreKit plug-in 把 IAP 帶回 Unity C#

Product fetch、purchase、transaction verification、Transaction.Updates 與 currentEntitlements 都能在 Unity workflow 裡處理,降低團隊直接跨到 native StoreKit 的摩擦。

Assets

Background Assets plug-in 管理內容可用性

遊戲可以要求 asset pack local availability,監聽下載進度,並把取消、重試、容量不足與語言 fallback 做成可見 UI 狀態。

Migration

Steam depot 不必全部重建

xcrun ba-package convert 可把 Steam manifest build script 轉成 asset pack manifest,再產出 archive,適合既有 PC 遊戲回收內容分發結構。

Localization

localized asset packs 降低玩家初始負擔

系統可依使用者偏好語言下載對應 asset packs,找不到區域變體時 fallback 到 base language 或 app primary language。

Implementation flow

導入時應把購買與下載當成同一條鏈

1

先設計 asset pack 切分

依語言、DLC、關卡、影片、模型或高解析素材切分。這會影響 App Store hosting、下載策略與商品權益對應。

2

用 StoreKit plug-in 取得商品與交易

購買成功後必須確認 transaction verified。消耗品、非消耗品與訂閱要分別處理 revoked、refunded、expired 與跨裝置更新。

3

把 entitlement 映射到 asset pack

權益通過不代表內容已在本機。遊戲要以 Background Assets 確認 local availability,必要時啟動下載並顯示進度。

4

在 Xcode 27 測完整情境

StoreKit configuration、Background Assets mock server、sandbox testing 要一起跑;只測付款或只測下載都不足以代表真實上線體驗。

5

最後才整理 App Store / Games app 呈現

產品頁 header、搜尋結果、Apple Games app 圖像素材可以強化曝光,但前提是購買與內容交付已經可被驗證。

實務啟發:移植工作不只看 rendering pipeline

很多遊戲移植討論會集中在 Metal、shader、controller 或效能。但 Apple 這支 short 提醒另一個同樣關鍵的面向:如果玩家買不到內容、下載太大、語言包浪費空間,遊戲就算跑得起來也不算完整移植。

對 Unity 團隊來說,官方 plug-ins 的價值是把 native framework 能力包進熟悉的 C# 邊界;但交易驗證、權益同步與下載 UI 還是產品邏輯,不能只靠 plug-in 自動完成。

遷移風險:Steam depot 轉換只是起點

Steam depot 通常反映 PC 發布與 patching 思維,不一定直接等於 Apple 平台最佳 asset pack 切分。轉換後仍要重看語言、on-demand policy、first launch、離線模式、容量不足、取消下載與多裝置 entitlement 更新。

StoreKit 端也要避免「purchase success 就解鎖」的簡化邏輯。完整 session 強調 verified transaction、current entitlements、transaction updates 與 Finish();這些狀態都會影響退款、過期、撤銷與跨裝置購買。

TL;DR