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

50 lines
1.8 KiB
Markdown

# 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:
```text
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:
```text
[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.