Skip to content

fix(core): auto-detect manifest decryption in PreprocessBuildCatalog#626

Merged
JasonXuDeveloper merged 3 commits intomasterfrom
fix/catalog-decryption
Feb 6, 2026
Merged

fix(core): auto-detect manifest decryption in PreprocessBuildCatalog#626
JasonXuDeveloper merged 3 commits intomasterfrom
fix/catalog-decryption

Conversation

@JasonXuDeveloper
Copy link
Owner

Summary

  • Fix NRE in PreprocessBuildCatalog when building with encrypted manifests by replacing the hardcoded null IManifestRestoreServices with a try-all approach that tests each registered decryption method from EncryptionMapping (YooAsset#730)
  • Add .claude/rules/yooasset-extensions.md to track custom modifications to YooAsset Extension Samples, ensuring fixes are preserved across YooAsset updates
  • Update compiled build output

Test plan

  • Build with unencrypted manifests — null path succeeds immediately
  • Build with XOR-encrypted manifests — null fails, XOR decryption succeeds
  • Build with AES/ChaCha20-encrypted manifests — same fallback pattern
  • Console log confirms which decryption method was used per package

🤖 Generated with Claude Code

JasonXuDeveloper and others added 3 commits February 7, 2026 10:23
Replace the hardcoded null IManifestRestoreServices parameter with a
try-all approach that attempts each registered decryption method from
EncryptionMapping until one succeeds. This fixes a NRE when building
with encrypted manifests (YooAsset#730).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Add .claude/rules/yooasset-extensions.md to track custom modifications
to YooAsset Extension Samples, ensuring the PreprocessBuildCatalog
decryption fix is preserved across YooAsset updates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Copilot AI review requested due to automatic review settings February 6, 2026 23:23
@github-actions github-actions bot added documentation Improvements or additions to documentation editor samples labels Feb 6, 2026
@JasonXuDeveloper JasonXuDeveloper enabled auto-merge (squash) February 6, 2026 23:25
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates YooAsset build-time catalog artifacts and adds documentation to track local customizations to YooAsset Extension Samples, intended to support manifest decryption auto-detection during catalog generation.

Changes:

  • Updates StreamingAssets/yoo/main generated outputs (version, catalog, bundles, hashes/bytes).
  • Updates compiled AOT output (JEngine.Core.dll.bytes).
  • Adds .claude/rules/yooasset-extensions.md and references it from CLAUDE.md to preserve YooAsset sample customizations across upstream updates.

Reviewed changes

Copilot reviewed 33 out of 63 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.hash.meta Removes previous generated hash meta for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.hash Removes previous generated hash for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.bytes.meta Removes previous generated manifest-bytes meta for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.bytes Removes previous generated manifest-bytes for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.hash.meta Adds new generated hash meta for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.hash Adds new generated hash for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.bytes.meta Adds new generated manifest-bytes meta for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.bytes Adds new generated manifest-bytes for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main.version Updates package version pointer.
UnityProject/Assets/StreamingAssets/yoo/main/ec451612fae802d07094821d3808809f.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/ec451612fae802d07094821d3808809f.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/eb53152c634d44794e4aebca15ee8b0b.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/eb53152c634d44794e4aebca15ee8b0b.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e6ed0b286414267962e71c6bd3e19aae.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e6ed0b286414267962e71c6bd3e19aae.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e578f9b5397d53f41a2b284805860df8.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e578f9b5397d53f41a2b284805860df8.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/dcb1b5ed74667265ec98799a1576d5d3.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/dcb1b5ed74667265ec98799a1576d5d3.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/cde787d0afee29507a54189b7372cf14.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/cde787d0afee29507a54189b7372cf14.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/c9cd151a5606eec7bf47ac8d9401fb94.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/c9cd151a5606eec7bf47ac8d9401fb94.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/c792026eb6f717273422cfb875e3121d.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/c792026eb6f717273422cfb875e3121d.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/bd7a40533fe708ab184ec75ceac853ee.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/bd7a40533fe708ab184ec75ceac853ee.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/ae16386504461146b4ec88eabc7de89f.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/ae16386504461146b4ec88eabc7de89f.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/a99f206109faf44e637346323f255c84.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/a99f206109faf44e637346323f255c84.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/a08587b61b8accf9b169ccdf828176f6.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/a08587b61b8accf9b169ccdf828176f6.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/BuildinCatalog.json Updates built-in catalog JSON to new package version and bundle list.
UnityProject/Assets/StreamingAssets/yoo/main/BuildinCatalog.bytes Adds/updates binary built-in catalog output.
UnityProject/Assets/StreamingAssets/yoo/main/85bf7a8000e78a0640dd575c462d71de.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/85bf7a8000e78a0640dd575c462d71de.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/76c5d9ebda370e318d1d711bf29db391.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/76c5d9ebda370e318d1d711bf29db391.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/743303a92561c811cf9e428d59f4eed5.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/743303a92561c811cf9e428d59f4eed5.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/723671f97fbc4c6dfad84ca9c9664b26.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/723671f97fbc4c6dfad84ca9c9664b26.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/64a56ed51df1cee5f53c5ac4760ce454.bundle.meta Removes meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/64a56ed51df1cee5f53c5ac4760ce454.bundle Removes old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/578aebd507ab15c1f73f9a41b5962e15.bundle Removes old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/56d90d09aba519ecd1cba11dfc31f5d8.bundle.meta Adds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/56d90d09aba519ecd1cba11dfc31f5d8.bundle Adds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/5154722f17ed26abd07f0275b2fb315c.bundle Removes old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/4abd3c5f4f01b40f54c4a348b24ead49.bundle.meta Updates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/4abd3c5f4f01b40f54c4a348b24ead49.bundle Adds/updates generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/490ed19cf4dd5e128fb13cf883211456.bundle.meta Updates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/490ed19cf4dd5e128fb13cf883211456.bundle Adds/updates generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/4549b29fd00b2e57f75873c7c370340b.bundle Removes old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/427571ab4f40f72802eba023fca7a5e8.bundle Removes old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/20c6686ce660502e16a881f74dde76d7.bundle.meta Updates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/20c6686ce660502e16a881f74dde76d7.bundle Adds/updates generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/1832d193ad604c285e2456ba2a7855c7.bundle.meta Updates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/1832d193ad604c285e2456ba2a7855c7.bundle Adds/updates generated bundle artifact.
UnityProject/Assets/HotUpdate/Compiled/AOT/JEngine.Core.dll.bytes Updates compiled AOT binary output for JEngine.Core.
CLAUDE.md Adds reference to the new YooAsset extensions maintenance rule.
.claude/rules/yooasset-extensions.md Adds documentation/checklist for maintaining customized YooAsset Extension Sample changes across upstream updates.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved: Copilot review found no issues and Unity Tests passed (or were skipped for non-code changes).

@JasonXuDeveloper JasonXuDeveloper merged commit 24052ca into master Feb 6, 2026
23 checks passed
@JasonXuDeveloper JasonXuDeveloper deleted the fix/catalog-decryption branch February 6, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation editor samples

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant