Skip to content

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

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

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

Conversation

@JasonXuDeveloper

Copy link
Copy Markdown
Owner

Summary

  • Fix NRE in PreprocessBuildCatalog when building with encrypted manifests by replacing the hardcoded nullIManifestRestoreServices 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

JasonXuDeveloperand 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>
CopilotAI review requested due to automatic review settings February 6, 2026 23:23
@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation editor samples labels Feb 6, 2026
@JasonXuDeveloper
JasonXuDeveloper enabled auto-merge (squash) February 6, 2026 23:25

CopilotAI left a comment

Copy link
Copy Markdown

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
FileDescription
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.hash.metaRemoves previous generated hash meta for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.hashRemoves previous generated hash for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.bytes.metaRemoves previous generated manifest-bytes meta for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208645.bytesRemoves previous generated manifest-bytes for old package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.hash.metaAdds new generated hash meta for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.hashAdds new generated hash for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.bytes.metaAdds new generated manifest-bytes meta for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main_260208479.bytesAdds new generated manifest-bytes for updated package version.
UnityProject/Assets/StreamingAssets/yoo/main/main.versionUpdates package version pointer.
UnityProject/Assets/StreamingAssets/yoo/main/ec451612fae802d07094821d3808809f.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/ec451612fae802d07094821d3808809f.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/eb53152c634d44794e4aebca15ee8b0b.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/eb53152c634d44794e4aebca15ee8b0b.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e6ed0b286414267962e71c6bd3e19aae.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e6ed0b286414267962e71c6bd3e19aae.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e578f9b5397d53f41a2b284805860df8.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/e578f9b5397d53f41a2b284805860df8.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/dcb1b5ed74667265ec98799a1576d5d3.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/dcb1b5ed74667265ec98799a1576d5d3.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/cde787d0afee29507a54189b7372cf14.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/cde787d0afee29507a54189b7372cf14.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/c9cd151a5606eec7bf47ac8d9401fb94.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/c9cd151a5606eec7bf47ac8d9401fb94.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/c792026eb6f717273422cfb875e3121d.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/c792026eb6f717273422cfb875e3121d.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/bd7a40533fe708ab184ec75ceac853ee.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/bd7a40533fe708ab184ec75ceac853ee.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/ae16386504461146b4ec88eabc7de89f.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/ae16386504461146b4ec88eabc7de89f.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/a99f206109faf44e637346323f255c84.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/a99f206109faf44e637346323f255c84.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/a08587b61b8accf9b169ccdf828176f6.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/a08587b61b8accf9b169ccdf828176f6.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/BuildinCatalog.jsonUpdates built-in catalog JSON to new package version and bundle list.
UnityProject/Assets/StreamingAssets/yoo/main/BuildinCatalog.bytesAdds/updates binary built-in catalog output.
UnityProject/Assets/StreamingAssets/yoo/main/85bf7a8000e78a0640dd575c462d71de.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/85bf7a8000e78a0640dd575c462d71de.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/76c5d9ebda370e318d1d711bf29db391.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/76c5d9ebda370e318d1d711bf29db391.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/743303a92561c811cf9e428d59f4eed5.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/743303a92561c811cf9e428d59f4eed5.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/723671f97fbc4c6dfad84ca9c9664b26.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/723671f97fbc4c6dfad84ca9c9664b26.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/64a56ed51df1cee5f53c5ac4760ce454.bundle.metaRemoves meta for an old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/64a56ed51df1cee5f53c5ac4760ce454.bundleRemoves old bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/578aebd507ab15c1f73f9a41b5962e15.bundleRemoves old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/56d90d09aba519ecd1cba11dfc31f5d8.bundle.metaAdds meta for a newly generated bundle.
UnityProject/Assets/StreamingAssets/yoo/main/56d90d09aba519ecd1cba11dfc31f5d8.bundleAdds a newly generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/5154722f17ed26abd07f0275b2fb315c.bundleRemoves old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/4abd3c5f4f01b40f54c4a348b24ead49.bundle.metaUpdates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/4abd3c5f4f01b40f54c4a348b24ead49.bundleAdds/updates generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/490ed19cf4dd5e128fb13cf883211456.bundle.metaUpdates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/490ed19cf4dd5e128fb13cf883211456.bundleAdds/updates generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/4549b29fd00b2e57f75873c7c370340b.bundleRemoves old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/427571ab4f40f72802eba023fca7a5e8.bundleRemoves old bundle artifact (or updates generated output as part of the package set).
UnityProject/Assets/StreamingAssets/yoo/main/20c6686ce660502e16a881f74dde76d7.bundle.metaUpdates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/20c6686ce660502e16a881f74dde76d7.bundleAdds/updates generated bundle artifact.
UnityProject/Assets/StreamingAssets/yoo/main/1832d193ad604c285e2456ba2a7855c7.bundle.metaUpdates bundle meta GUID.
UnityProject/Assets/StreamingAssets/yoo/main/1832d193ad604c285e2456ba2a7855c7.bundleAdds/updates generated bundle artifact.
UnityProject/Assets/HotUpdate/Compiled/AOT/JEngine.Core.dll.bytesUpdates compiled AOT binary output for JEngine.Core.
CLAUDE.mdAdds reference to the new YooAsset extensions maintenance rule.
.claude/rules/yooasset-extensions.mdAdds documentation/checklist for maintaining customized YooAsset Extension Sample changes across upstream updates.

Comment thread.claude/rules/yooasset-extensions.md

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

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 masterFeb 6, 2026
23 checks passed
@JasonXuDeveloper
JasonXuDeveloper deleted the fix/catalog-decryption branch February 6, 2026 23:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationeditorsamples

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@JasonXuDeveloper