Release checklist
Go through this list after every SDK update and before every player build.
Packages​
-
com.silvertiger.projectvandcom.silvertiger.crosssdkpoint atGameStudio3/SDK-Packageswith a release tag (#projectv/<version>,#shared/<version>), and thepathversion matches the tag. - The
com.silvertiger.crosssdkversion is the onecom.silvertiger.projectvasks for. -
packages-lock.jsonwas regenerated by Unity and committed withmanifest.json. - No SDK package points at a branch, a
file:path or a local folder.
Unity setup​
- Unity 6000.3.20f1; packages resolve and scripts compile without errors.
-
ProjectVSetupReport.jsonis valid with exactly one SDK root. -
ProjectVSettingstargets the intended environment; production uses an HTTPS endpoint that is notlocalhost. - No password, token or OAuth secret is saved in assets, scenes or logs.
- Android builds are signed with the keystore registered for Google sign-in.
Game code​
- Screens use screen contracts, or presenters where there is none.
- No game code uses Nakama or
SilverTiger.CrossSDK.*types. - Login and other scenes derive from the SDK scene-scope base classes.
- Every gameplay scene has exactly one
IProjectVGameplayDataConsumer. - Every page disposes its observation and cancels its token on close.
- UI never calculates balances, stamina, rewards, costs, locks, stars or purchase results.
Play test​
- A cold start shows Login, or restores the saved session.
- Guest (and every other enabled login) reaches the Lobby.
- Opening a signed-in scene directly goes back to Login.
- Lobby, Header, Character, Alliance, Shop and Campaign show live data and keep showing it when the network drops.
- A fast double tap on any command sends it once.
- A mission can be started, played and settled: win, lose and give up.
- Logout and account deletion return to Login with no data from the previous account.
Evidence​
- EditMode and PlayMode tests pass with the pinned SDK version.
- Android/iOS login and IAP were tested when in scope, or recorded as not tested with an owner.
- The build record names the Unity version, the SDK version and the backend environment.
Do not mark an integration done when a check was skipped; record it as not done, with an owner and the next step.