TH1/MD/iOSMigration/HybridCLR_Phase1.md
2026-06-09 20:49:52 +08:00

1.8 KiB

HybridCLR Phase 1

Scope

This phase only adds the hot-update foundation. It must not move turn actions, AI, network sync, MapData, replay, save compatibility, MemoryPack, Steam lobby/P2P, Workshop, or backend auth into hotfix assemblies.

Added Layout

  • Assets/Scripts/TH1_Hotfix/TH1.Hotfix.asmdef: first hot-update assembly.
  • Assets/Scripts/TH1_Hotfix/HotfixEntry.cs: smoke-test hotfix entry.
  • Assets/Scripts/TH1_Logic/Hotfix/HotfixBootstrap.cs: AOT-side loader.
  • Assets/Scripts/TH1_Logic/Editor/HybridCLR/TH1HybridCLRBuildTools.cs: TH1 menu shortcuts.

Runtime artifact layout:

Assets/StreamingAssets/HybridCLR/
  HotfixDlls/
    TH1.Hotfix.dll.bytes
  AOTAssemblies/
    mscorlib.dll.bytes
    System.dll.bytes
    System.Core.dll.bytes

The loader silently skips when TH1.Hotfix.dll.bytes is missing, so the Steam/editor flow can still run without any hotfix package.

First Local Verification

  1. Let Unity resolve com.code-philosophy.hybridclr.
  2. Run HybridCLR/Installer....
  3. Run Tools/TH1/iOS Migration/HybridCLR/2. Configure TH1 Hotfix Settings.
  4. Run Tools/TH1/iOS Migration/HybridCLR/3. Generate All.
  5. Run Tools/TH1/iOS Migration/HybridCLR/4. Compile Hotfix Dll.
  6. Run Tools/TH1/iOS Migration/HybridCLR/5. Copy Hotfix Artifacts To StreamingAssets.
  7. Run Tools/TH1/iOS Migration/HybridCLR/6. Test Load StreamingAssets Hotfix In Editor.

Expected editor console smoke output:

[TH1.Hotfix] Initialize version 0.1.0
[TH1.Hotfix] Loaded TH1.Hotfix, ...

Next Boundaries

  • Keep first hotfix content limited to UI presentation helpers, non-networked fixes, and feature flags.
  • Do not add Steamworks references to TH1.Hotfix.
  • Do not use hotfix as a way to bypass App Store review. Prefer resources/config for content updates and reserve code hotfix for cautious compatibility fixes.