Chuyển tới nội dung chính

Xử lý sự cố

Bắt đầu từ chỗ đầu tiên bị lỗi: package, rồi setup, rồi startup, rồi scene.

Package​

Repository not found hoặc terminal prompts disabled​

Bạn không đọc được GameStudio3/SDK-Packages. Xin team SDK cấp quyền, rồi kiểm tra Git clone được repository bên ngoài Unity và Git Credential Manager (hoặc SSH) hoạt động với Unity Editor. Không bao giờ đặt token trong manifest.json.

Không tìm thấy package hoặc phiên bản​

Kiểm tra cả hai mục SDK trong manifest.json:

  • com.silvertiger.projectv: path=/packages/products/projectv/com.silvertiger.projectv/<version> và tag #projectv/<version>;
  • com.silvertiger.crosssdk: path=/packages/shared/com.silvertiger.crosssdk/<version> và tag #shared/<version>;
  • phiên bản trong path và trong tag giống nhau, và là một phiên bản đã phát hành.

Xung đột phiên bản package​

com.silvertiger.projectv cần đúng một phiên bản com.silvertiger.crosssdk. Dùng phiên bản được ghi trong release notes của nó.

Thông báo Missing Signature​

Package Git riêng tư không được ký. Đóng thông báo; nó không ảnh hưởng tới việc import.

Biên dịch Unity​

Không tìm thấy kiểu screen hoặc presenter​

.asmdef của game phải tham chiếu SilverTiger.ProjectV.Unity (và VContainer để inject). Code trong Assembly-CSharp thấy chúng mà không cần tham chiếu.

Trùng kiểu hoặc assembly​

Xoá các DLL SDK đã copy, các bản package nhúng và các thư mục backend V1 còn sót lại.

Kiểm tra setup​

Báo cáoCách sửa
RootCount là 0Mở scene Login và chạy Tools › SilverTiger › ProjectV SDK › Setup
RootCount > 1Giữ root sở hữu ProjectVSettings đã cấu hình; xoá các root khác
Thiếu presentation scopeThêm VContainer (jp.hadashikick.vcontainer 1.17.0) vào manifest và chạy lại Setup
Settings không hợp lệSửa endpoint (HTTP/HTTPS), server key và client version

Startup và đăng nhập​

StatusÝ nghĩaLàm gì
WaitingForContentNội dung riêng của game chưa tải xongTải xong, rồi gọi StartAsync(true, …)
AwaitingLoginKhông có phiên đã lưuHiện các lựa chọn đăng nhập
MaintenanceBackend đóng để bảo trìMàn bảo trì chặn
UpdateRequiredBản build này quá cũYêu cầu người chơi cập nhật
ContractMismatchBản build này và backend không khớpDừng; team SDK phải deploy các phiên bản khớp nhau
OfflineKhông kết nối được backendMàn offline kèm thử lại (Retry); kiểm tra Endpoint và mạng
FailedLỗi khácThông báo chung đã bản địa hoá kèm request ID

Đăng nhập Guest mà không bao giờ rời khỏi Login thường nghĩa là endpoint hoặc server key thuộc môi trường khác. So sánh chúng với Cấu hình môi trường.

Không đăng nhập Google được: chạy Tools › SilverTiger › ProjectV SDK › Google › Validate Configuration và kiểm tra GetNativeAvailability. Trên Android, bản build phải được ký bằng keystore đã đăng ký cho Android OAuth client.

Inject vào scene​

VContainer không resolve được screen hoặc presenter​

Kiểm tra rằng:

  1. game được khởi chạy từ scene Login, nên SDK root tồn tại;
  2. scene Login dùng ProjectVLoginSceneScope và các scene khác dùng ProjectVAuthenticatedSceneScope;
  3. view được đăng ký bằng RegisterComponentInHierarchy;
  4. scene không tự thêm SDK root hoặc presentation scope của riêng nó.

Mở thẳng Shop hoặc Lobby thì bị đưa về Login​

Đây là hành vi đúng khi chưa có phiên đăng nhập. Hãy bắt đầu từ Login.

Scene nhiệm vụ dừng khi tải​

Scene gameplay cần đúng một IProjectVGameplayDataConsumer. Xem Console để tìm chẩn đoán thiếu/nhiều consumer.

Tool trong Editor​

  • Tools › SilverTiger › ProjectV SDK › Setup: tạo hoặc kiểm tra SDK root và settings.
  • Tools › SilverTiger › CrossSDK › SDK Debugger: dòng thời gian của mọi hành động SDK. Nó có thể hiện một hộp thoại trước khi script reload; đóng nó để quá trình reload tiếp tục.
  • Tools › SilverTiger › CrossSDK › Validate Unity Host: kiểm tra SDK root trong scene đang mở.

Gửi gì cho team SDK​

  • phiên bản com.silvertiger.projectv và com.silvertiger.crosssdk;
  • phiên bản Unity và nền tảng đích;
  • tên môi trường và endpoint (không bao giờ gửi server key của production, không bao giờ gửi thông tin đăng nhập);
  • ProjectSettings/ProjectVSetupReport.json;
  • Code, Category và RequestId của lỗi, cùng tóm tắt trong Console của hành động thất bại (giá trị req và trace; xem Chẩn đoán);
  • các bước tối thiểu để tái hiện.

Không bao giờ đính kèm session token, mật khẩu, OAuth secret hoặc payload thô.