Build, cài và gỡ lỗi trên máy thật
Assets/
Scripts/
Settings/
ngoài Assets/
thiết lập dự án
đã có sẵnbài này thêm
Mọi thứ đã cấu hình xong và Knight đã biết lưu tiến trình. Giờ bấm nút, đưa file lên điện thoại, và học cách đọc log khi có trục trặc.
Cảnh và tài nguyên đi vào, một gói cài đặt đi ra.
Build và chạy
- 1
. Tick Development Build trong lúc còn thử nghiệm.
- 2
Cắm điện thoại rồi bấm Build And Run. Unity build, cài và mở app trong một lượt.
- 3
Lưu file ra Builds/game-dev.apk. Đừng lưu trong Assets/ — Unity sẽ cố import chính bản build của bạn.
- 4
Lần build đầu: 10–20 phút. Các lần sau với cùng thiết lập: 1–3 phút.
Ký số — phần ai cũng quên
Bản debug được ký bằng khoá tạm. Bản phát hành cần keystore của riêng bạn, và thiếu nó thì bạn không ký được bản cập nhật. Google Play có thể cấp lại upload key bị mất, nhưng phải qua yêu cầu hỗ trợ mất vài ngày — phần lớn các store khác thì hoàn toàn không giúp được.
- 1
.
- 2
Lưu nó BÊN NGOÀI thư mục dự án và sao lưu ở hai nơi. Hãy coi file này là thứ không thể thay thế.
- 3
Đừng bao giờ commit file .keystore hay mật khẩu của nó lên git. Thêm *.keystore vào .gitignore ngay bây giờ.
- 4
Để lên store: bỏ tick Development Build, tick Build App Bundle (Google Play), rồi bấm Build.
Cài thủ công bằng adb
#cài, ghi đè bản cũ
adb install -r Builds/game-dev.apk
#gỡ khi đổi chữ ký
adb uninstall com.yourstudio.yourgame
#mở app không cần chạm điện thoại
adb shell monkey -p com.yourstudio.yourgame 1
#chép bản build vào thư mục Download
adb push Builds/game-dev.apk /sdcard/Download/Đọc log của máy
Khi game sập trên điện thoại mà chạy tốt trong editor, logcat là thứ duy nhất cho bạn biết lý do.
# chỉ hiện thông báo của Unity — dùng lệnh này
adb logcat -s Unity
# xoá log cũ để chỉ thấy lần chạy này
adb logcat -c && adb logcat -s Unity
#lưu ra file để đọc kỹ
adb logcat -s Unity > crash.txtMọi Debug.Log bạn viết đều hiện ở đây, trên máy thật, theo thời gian thực.
Tìm dòng bắt đầu bằng NullReferenceException — dấu vết bên dưới nêu chính xác script và số dòng.
Sập mà không có thông báo Unity nào thường là lỗi native: hết bộ nhớ, hoặc thiếu thư viện ARM64.
Log hiện trên màn hình cho người thử không có cáp
using System.Collections.Generic;
using UnityEngine;
public class ScreenLogger : MonoBehaviour
{
private readonly List<string> lines = new List<string>();
[SerializeField] private int maxLines = 14;
void OnEnable() => Application.logMessageReceived += Handle;
void OnDisable() => Application.logMessageReceived -= Handle;
void Handle(string message, string stack, LogType type)
{
lines.Add($"[{type}] {message}");
if (lines.Count > maxLines) lines.RemoveAt(0);
}
void OnGUI()
{
GUI.skin.label.fontSize = 26;
GUI.Label(new Rect(20, 20, Screen.width - 40, Screen.height - 40),
string.Join("\n", lines));
}
}Trước khi tải lên store
Bỏ tick Development Build — bản dev chậm hơn và không được phép phát hành.
Thử trên ít nhất một máy cấu hình thấp. Đánh giá bạn nhận được là do người dùng máy rẻ viết.
Kiểm tra ứng dụng trên máy có tai thỏ và trên máy tính bảng — lỗi neo UI lộ ra ở đó.
Play Console yêu cầu: file AAB, target API level không cũ quá một năm, đường dẫn chính sách bảo mật, và icon 512×512.