Trả lời nhanh
Nếu TWA chạy toàn màn hình khi bạn cài bản build của chính mình nhưng hiện thanh trình duyệt khi cài từ Google Play, trước tiên hãy kiểm tra xem website của bạn có liệt kê chứng chỉ ký của Play hay không. Trong Play Console, mở Play app signing trong mục Protected with Play và sao chép SHA-256 của chứng chỉ khóa ký ứng dụng (app signing key certificate). Thêm nó vào mảng sha256_cert_fingerprints trong https://your-domain/.well-known/assetlinks.json, phân phát tệp đó qua HTTPS với mã HTTP 200 trực tiếp, không chuyển hướng và kiểu application/json, rồi thử lại với bản build cài từ một kênh thử nghiệm trên Play. Nếu dấu vân tay đã khớp, hãy kiểm tra việc điều hướng ra khỏi origin đã xác minh, các lần chuyển hướng và trình duyệt đang dùng.
Sửa theo thứ tự này
Sau đó thử phiên bản cài từ Google Play, không phải bản build bạn tự cài.
Hướng dẫn này chỉ xử lý một việc: liên kết giữa website của bạn và bản build mà Google Play phân phối. Bài không đề cập đến việc tự xây dựng TWA hay quá trình Google Play xem xét ứng dụng, vì hai chủ đề đó có hướng dẫn riêng được liên kết bên dưới. Mọi trang của Google được trích dẫn ở đây đều đã được kiểm tra vào Ngày 16 tháng 10 năm 2026, và danh sách nguồn nằm ở cuối bài.
Nội dung bài viết
Vì sao thanh trình duyệt chỉ xuất hiện trên bản cài từ Play
Chrome xác minh một TWA bằng cách so sánh chứng chỉ đã ký ứng dụng được cài với các dấu vân tay mà website của bạn công bố. Khi bước kiểm tra này thất bại, hướng dẫn bắt đầu nhanh về TWA của Chrome cho biết trình duyệt sẽ chuyển sang hiển thị trang web của bạn dưới dạng Custom Tab. Phương án dự phòng đó chính là thanh địa chỉ bạn nhìn thấy.
Với Play App Signing thường có hai chứng chỉ. Bạn ký gói tải lên bằng khóa tải lên (upload key), còn Google ký các APK mà Google phân phối bằng khóa ký ứng dụng (app signing key). Trang Khái niệm Android cho nhà phát triển web của Chrome cho biết dấu vân tay của khóa ký ứng dụng là dấu vân tay tương ứng với ứng dụng của bạn khi được tải xuống từ Play Store. Vì vậy, một tệp chỉ liệt kê chứng chỉ trên máy của bạn sẽ chạy đúng trên bàn làm việc của bạn nhưng thất bại trên mọi điện thoại cài từ Play.
Hai khóa này không phải lúc nào cũng khác nhau. Tài liệu về ký ứng dụng của Android mô tả những cấu hình trong đó cùng một khóa đóng vai trò vừa là khóa ký ứng dụng vừa là khóa tải lên. Vì thế, cách sửa là so sánh các chứng chỉ thật, chứ không phải đoán xem bạn đang có loại nào.
| Bản build đến từ đâu | Được ký bằng | assetlinks.json cần gì |
|---|---|---|
| Cài từ một kênh thử nghiệm trên Play hoặc kênh phát hành công khai | Được ký bằngKhóa ký ứng dụng của Play | assetlinks.json cần gìSHA-256 của chứng chỉ khóa ký ứng dụng. Đây là dấu vân tay giúp sửa lỗi trên bản cài từ Play. |
| APK phát hành của chính bạn, cài thủ công | Được ký bằngKhóa tải lên hoặc khóa phát hành của bạn | assetlinks.json cần gìSHA-256 của khóa đó, chỉ khi bạn muốn cả những bản build này cũng được xác minh |
| Chạy bản debug từ Android Studio | Được ký bằngKhóa debug trên máy của bạn | assetlinks.json cần gìSHA-256 của khóa debug, chỉ khi bạn muốn các bản build debug được xác minh. Một application ID khác cần một câu lệnh (statement) riêng. |
| Đường liên kết chia sẻ ứng dụng nội bộ | Được ký bằngMột khóa chia sẻ ứng dụng nội bộ riêng | assetlinks.json cần gìGoogle ký lại các bản tải lên này bằng khóa Internal App Sharing, vì vậy hãy thử bản sửa trên một kênh thử nghiệm |
| Bản build phát hành sau khi nâng cấp khóa ký | Được ký bằngChứng chỉ mà Play hiện dùng cho bản build đó | assetlinks.json cần gìMọi chứng chỉ của các bản build bạn vẫn hỗ trợ. Đừng xóa chứng chỉ cũ chỉ vì một chứng chỉ mới xuất hiện. |
Tester thử nghiệm khép kín cũng thấy thanh này
Tester trong đợt thử nghiệm khép kín cài bản build do Play ký, nên đây thường là nơi thanh trình duyệt xuất hiện đầu tiên. Đây không phải lỗi của thử nghiệm khép kín: yếu tố quyết định là chứng chỉ trên APK được cài. Nếu bạn chỉ thử APK cài thủ công (sideload), bạn có thể hoàn toàn bỏ sót vấn đề này.
Tìm SHA-256 ký ứng dụng trong Play Console
Tài liệu của chính Google hiện đưa ra hai nhãn cho cùng một vị trí. Cả hai đều bắt đầu từ Protected with Play trong menu bên trái của ứng dụng.
| Trang của Google | Đường dẫn | Sao chép từ |
|---|---|---|
| Trợ giúp Play Console: Sử dụng Play App Signing | Đường dẫnProtected with Play > Play Store distribution > Go to Play app signing | Sao chép từPhần App signing key (khóa ký ứng dụng) |
| Tài liệu Android App Links | Đường dẫnProtected with Play > Play Store protection > Manage Play app signing | Sao chép từApp signing key certificate > SHA-256 certificate fingerprint |
Các hướng dẫn cũ hơn, kể cả một số trang của Google, vẫn ghi Release > Setup > App signing hoặc Setup > App integrity. Nếu bạn chỉ thấy những nhãn đó, thì đó vẫn là cùng một trang dưới tên cũ.
Mở ứng dụng trong Play Console
Chọn ứng dụng có tên gói (package name) mà TWA của bạn sử dụng. Mỗi ứng dụng có khóa ký ứng dụng riêng.
Đi tới Play app signing
Dùng một trong hai đường dẫn ở bảng trên. Cả hai đều dẫn đến trang liệt kê khóa ký ứng dụng và khóa tải lên.
Sao chép SHA-256 của khóa ký ứng dụng
Sao chép dấu vân tay chứng chỉ SHA-256 trong phần khóa ký ứng dụng, không phải phần khóa tải lên và không phải dòng SHA-1. Đó là 32 cặp ký tự thập lục phân, ngăn cách bằng dấu hai chấm. Hãy dán nguyên vẹn; một ví dụ rút gọn lấy từ bài blog sẽ không xác minh được.
Giữ mọi chứng chỉ ký ứng dụng có liên quan
Trang Trợ giúp hiện tại của Google mô tả cơ chế ký lai sẵn sàng cho kỷ nguyên lượng tử (quantum-ready hybrid signing), trong đó bạn sao chép dấu vân tay của ba khóa: khóa cổ điển mới và khóa hậu lượng tử dùng trên thiết bị mới hơn, cùng khóa cổ điển dùng trên thiết bị cũ hơn. Nếu trang của bạn hiển thị nhiều hơn một chứng chỉ ký ứng dụng, hãy liệt kê từng chứng chỉ mà các thiết bị bạn hỗ trợ có thể nhận. Điều này chỉ áp dụng cho ứng dụng dùng cấu hình đó; hầu hết ứng dụng chỉ hiển thị một chứng chỉ ký ứng dụng.
Đọc dấu vân tay của khóa do chính bạn giữ
Với khóa tải lên hoặc khóa debug, công cụ keytool của Java in ra cùng định dạng. Thay tệp keystore và alias bằng của bạn, rồi sao chép dòng có nhãn SHA256:
keytool -list -v -keystore my-upload-key.jks -alias upload
Nếu bạn quản lý nhiều ứng dụng, Google Play Developer API cũng có thể trả về mã băm chứng chỉ của các APK do Play tạo ra (trường certificateSha256Hash trong danh sách APK được tạo). Để sửa một lần, sao chép từ Play Console sẽ đơn giản hơn.
Viết và phân phát assetlinks.json đúng cách
Tệp này là một mảng JSON gồm các câu lệnh (statement). Với TWA, quan hệ (relation) là delegate_permission/common.handle_all_urls, và đích (target) là ứng dụng Android của bạn: namespace android_app, đúng application ID của bạn và một mảng dấu vân tay SHA-256. Một tệp tối thiểu trông như sau:
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.twa",
"sha256_cert_fingerprints": [
"PLAY_APP_SIGNING_KEY_SHA256",
"UPLOAD_KEY_SHA256"
]
}
}
]
Thay com.example.twa bằng application ID của bạn và thay mỗi giá trị giữ chỗ bằng một SHA-256 đầy đủ, ngăn cách bằng dấu hai chấm. Xóa mục thứ hai nếu bạn chỉ cần các bản cài từ Play được xác minh. Chỉ dùng JSON chuẩn nghiêm ngặt: không chú thích, không dấu phẩy thừa ở cuối, không giá trị SHA-1.
Google yêu cầu phân phát tệp như thế nào
- Đúng vị trí.
https://your-domain/.well-known/assetlinks.json, có dấu chấm trong.well-known.example.comvàwww.example.comlà hai origin khác nhau; hãy đăng tệp trên từng origin mà ứng dụng của bạn mở. Một bản sao trong thư mục con như/app/.well-known/không được tính. - Mã HTTP 200 trực tiếp. Tài liệu Digital Asset Links của Google viết: “Mọi phản hồi từ máy chủ ngoài HTTP 200 đều bị coi là lỗi và sẽ dẫn đến danh sách câu lệnh trống.”
- Không chuyển hướng. Các phản hồi 301 và 302 không được theo. Điều này bao gồm cả bước chuyển từ http sang https và từ tên miền trần sang www.
- HTTPS với chuỗi chứng chỉ hợp lệ, và header
Content-Type: application/json. Một trang đăng nhập hoặc trang lỗi HTML trả về 200 không phải là tệp hợp lệ.
Kiểm tra phản hồi thực tế từ bất kỳ terminal nào. Dòng trạng thái đầu tiên phải là 200 và kiểu nội dung phải là JSON, không có mã 3xx nào trước đó:
curl -sI https://example.com/.well-known/assetlinks.json
Nhiều dấu vân tay, nhiều ứng dụng
Hướng dẫn liên kết website của Android viết về mảng dấu vân tay: “Trường này hỗ trợ nhiều dấu vân tay, có thể dùng để hỗ trợ các phiên bản khác nhau của ứng dụng, chẳng hạn như bản build debug và bản build chính thức.” Chỉ thêm dấu vân tay của khóa tải lên hoặc khóa debug cho những bản build mà bạn thực sự muốn website đó tin cậy. Một bản build có application ID khác, chẳng hạn một gói debug riêng, cần câu lệnh riêng trong mảng.
Nếu bạn tạo TWA bằng Bubblewrap hoặc PWABuilder
Trong một dự án Bubblewrap có sẵn, hãy thêm dấu vân tay của Play và tạo lại tệp:
bubblewrap fingerprint add "PLAY_APP_SIGNING_KEY_SHA256" --name="Play app signing"
bubblewrap fingerprint list
bubblewrap fingerprint generateAssetLinks
Tạo tệp chưa phải là triển khai tệp: hãy tải assetlinks.json mới lên website và kiểm tra bằng curl. bubblewrap validate kiểm tra PWA của bạn theo các tiêu chí chất lượng; lệnh này không kiểm tra liên kết ký, nên việc vượt qua bước đó không chứng minh được gì về dấu vân tay. Hướng dẫn hiện tại của PWABuilder cũng nêu cùng ý về việc ký, “Sau khi bạn tải tệp .aab lên, Google Play sẽ ký lại ứng dụng của bạn”, và yêu cầu bạn thêm dấu vân tay của Play vào tệp được tạo. Sửa dấu vân tay là thay đổi trên website, không phải trên tệp nhị phân của ứng dụng.
Xác minh liên kết, rồi thử bản cài từ Play
Có bốn lớp liên quan: tệp trên website, Digital Asset Links API của Google, cơ chế xác minh liên kết của chính Android và trình duyệt khởi chạy TWA. Vượt qua một lớp không chứng minh lớp tiếp theo cũng ổn, vì vậy hãy kiểm tra theo thứ tự và kết thúc trên thiết bị.
Tệp trên website
Chạy lệnh kiểm tra curl ở trên. Sửa mọi lần chuyển hướng, kiểu nội dung sai hoặc trạng thái khác 200 trước khi xem xét bất cứ chỗ nào khác.
Statement List Generator and Tester của Google
Công cụ Statement List Generator and Tester của Google nhận tên miền, tên gói và SHA-256 của bạn, rồi kiểm tra xem câu lệnh có tồn tại hay không. Đây là cách kiểm tra trực quan nhanh nhất.
Kiểm tra chính xác qua API
Phương thức assetlinks.check trả lời một câu hỏi chính xác: gói này với chứng chỉ này có được liên kết với website này không? Thay origin, gói, dấu vân tay và khóa API, mã hóa URL các giá trị, rồi tìm "linked": true:
https://digitalassetlinks.googleapis.com/v1/assetlinks:check?source.web.site=https%3A%2F%2Fexample.com&relation=delegate_permission%2Fcommon.handle_all_urls&target.android_app.package_name=com.example.twa&target.android_app.certificate.sha256_fingerprint=URL_ENCODED_SHA256&key=YOUR_API_KEY
Nguồn (source) là origin, không phải URL của tệp. Phương thức statements.list chỉ liệt kê những gì website công bố, nên một danh sách không trống không chứng minh rằng gói và chứng chỉ của bạn có trong đó. Hướng dẫn của Google yêu cầu khóa API; lỗi ủy quyền hoặc lỗi hạn mức là vấn đề truy cập API, không phải liên kết thất bại.
Để xem mọi thứ website công bố, yêu cầu list chỉ cần origin và quan hệ (relation). Đọc các đích (target) được trả về và tìm đúng gói và chứng chỉ của bạn:
https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https%3A%2F%2Fexample.com&relation=delegate_permission%2Fcommon.handle_all_urls
Ứng dụng mà tester cài đặt
Cài từ kênh thử nghiệm trên Play, không phải APK cài thủ công và không phải đường liên kết chia sẻ ứng dụng nội bộ, rồi mở ứng dụng. Nếu thanh vẫn còn, hãy đọc nhật ký xác minh của Chrome qua adb. Tài liệu của Chrome cho biết nếu bạn thấy Statement failure matching fingerprint., chữ ký của ứng dụng không khớp với assetlinks.json của bạn:
adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links
App Links Assistant của Android Studio (Tools > App Links Assistant) kiểm tra liên kết Android App Links và manifest của bạn. Công cụ này hữu ích cho những việc đó, nhưng không cho bạn biết TWA có mở toàn màn hình hay không; chỉ việc thử trên thiết bị mới cho biết điều đó.
Nâng cao: trạng thái xác minh của chính Android
Trên Android 12 trở lên, hướng dẫn xác minh của Android ghi nhận các lệnh sau cho App Links. Thay tên gói, chạy hai lệnh đầu, chờ vài phút, rồi đọc trạng thái:
adb shell pm set-app-links --package YOUR_PACKAGE 0 all
adb shell pm verify-app-links --re-verify YOUR_PACKAGE
adb shell pm get-app-links YOUR_PACKAGE
verified mô tả việc xác minh tên miền của Android, không cho biết TWA có mở mà không có giao diện trình duyệt hay không. Các mã từ 1024 trở lên là lỗi riêng của trình xác minh, không phải chẩn đoán SHA-256 bị sai. Với chính TWA, hãy dùng nhật ký Chrome ở trên.
Dấu vân tay khớp nhưng thanh vẫn còn
Thanh hiển thị không chứng minh SHA-256 bị sai. Khi bước kiểm tra ở trên trả về linked: true mà thanh vẫn còn, hãy lần lượt xem xét các nguyên nhân sau.
| Bạn thấy gì | Nguyên nhân có thể | Cần làm gì |
|---|---|---|
| Thanh xuất hiện sau một đường liên kết, một lần đăng nhập hoặc một lần chuyển hướng | Nguyên nhân có thểBạn đã rời khỏi origin đã xác minh | Cần làm gìHướng dẫn nhiều origin của Chrome viết: “Khi người dùng điều hướng ra khỏi origin đã được xác thực, giao diện Custom Tab sẽ hiển thị.” Hãy khai báo mọi origin bạn kiểm soát trong ứng dụng và đăng assetlinks.json trên từng origin. Một trang đăng nhập trên tên miền của công ty khác, chẳng hạn một nhà cung cấp danh tính, nằm ngoài liên kết của bạn: bạn không thể đăng tệp của họ, nên việc giao diện trình duyệt hiện ra ở đó là bình thường. |
| Thanh có ngay từ màn hình đầu tiên và tên miền của bạn có chuyển hướng | Nguyên nhân có thểURL khởi chạy và origin đã khai báo là hai host khác nhau | Cần làm gìĐặt URL khởi chạy, origin đã khai báo và host của tệp giống nhau, ví dụ tất cả đều là www. Một trường hợp Bubblewrap được báo cáo, với dấu vân tay đã khớp, đã được sửa đúng theo cách này. |
| Toàn màn hình với Chrome, có thanh với trình duyệt mặc định khác | Nguyên nhân có thểCách chọn trình duyệt cung cấp | Cần làm gìTheo hướng dẫn bắt đầu nhanh của Chrome: trình duyệt mặc định được dùng nếu nó hỗ trợ TWA, nếu không thì dùng một trình duyệt đã cài khác có hỗ trợ, nếu không nữa thì dùng Custom Tab. Chạy adb logcat -v brief | grep -e TWAProviderPicker để xem trình duyệt nào đã được chọn. |
| Cài mới khi mạng kém hoặc không có mạng | Nguyên nhân có thểKhông thể chạy bước xác minh | Cần làm gìKết nối lại mạng và mở lại ứng dụng. Đây là hiện tượng do cộng đồng báo cáo, không phải hành vi được ghi trong tài liệu. |
Android báo verified, nhưng TWA hiện giao diện trình duyệt |
Nguyên nhân có thểBước kiểm tra của Android và của trình duyệt là riêng biệt | Cần làm gìGhi lại thông báo xác minh origin của trình duyệt bằng lệnh logcat ở trên; thông báo này giải thích kết quả của TWA, không phải trạng thái của Android. |
| Một thông báo ngắn rằng ứng dụng chạy trong trình duyệt của bạn, sau đó toàn màn hình | Nguyên nhân có thểCó thể là thông báo của trình duyệt, không phải thanh hiển thị cố định | Cần làm gìGhi lại chính xác nội dung và thời gian nó hiển thị trước khi coi đó là liên kết thất bại. Triệu chứng này do cộng đồng báo cáo và không được Google ghi trong tài liệu. |
Bao lâu thì tệp đã sửa có hiệu lực
Google không công bố một thời gian chờ duy nhất cho TWA, vì có nhiều bộ nhớ đệm liên quan và mỗi bộ có quy tắc riêng:
- Máy chủ hoặc CDN của bạn có thể vẫn phân phát tệp cũ. Hãy xóa bộ nhớ đệm và xác nhận phản hồi thực tế bằng curl.
- Digital Asset Links API cho biết mỗi phản hồi còn hiệu lực trong bao lâu qua trường
maxAge. - Android App Links có thời gian riêng. Hướng dẫn xác minh của Android cho biết trên Android 15 trở lên, thay đổi có thể mất đến bảy ngày để đến được mọi thiết bị, còn trên Android 14 trở xuống, tệp thường được đọc lại khi ứng dụng được cài đặt hoặc cập nhật.
- Trình duyệt có thể giữ trạng thái riêng. Một nhà phát triển báo cáo đã thành công sau khi xóa dữ liệu của Chrome.
Vì vậy, hãy xóa bộ nhớ đệm, xác nhận tệp đang chạy thực tế và cài lại từ Google Play. Trên thiết bị thử nghiệm, cài mới hoặc xóa dữ liệu trình duyệt có thể loại trừ trạng thái lưu trong bộ nhớ đệm; đó là một bước chẩn đoán, không phải điều nên yêu cầu mọi người dùng làm. Đừng lên kế hoạch dựa trên một số giờ cố định.
Bị từ chối, xem xét và thử nghiệm khép kín
Tài liệu không ghi nhận việc thiếu hoặc sai assetlinks.json tự nó là nguyên nhân khiến ứng dụng bị từ chối. Điều tài liệu mô tả là việc chuyển sang Custom Tab có giao diện trình duyệt. Quá trình xem xét là một câu hỏi riêng: chính sách về chức năng của Google Play viết “Chúng tôi không cho phép những ứng dụng gặp sự cố, buộc đóng, bị treo hoặc hoạt động bất thường theo cách khác,” và điều đó áp dụng bất kể trạng thái liên kết của bạn ra sao. Dấu vân tay đúng sửa được thanh trình duyệt; nó không quyết định kết quả xem xét. Nếu bạn đã bị từ chối, hãy bắt đầu từ chính sách được nêu trong email.
Một số bài viết cũ nói rằng Chrome sẽ làm TWA gặp sự cố nếu không đạt các bước kiểm tra chất lượng. Chromium đã gỡ bỏ mã QualityEnforcer đó vào ngày 4 tháng 5 năm 2023, vì vậy hãy xem lời khuyên đó là thông tin lịch sử, không phải mô tả về các trình duyệt hiện nay.
Nếu bạn đã bị từ chối, hãy xử lý dựa trên lý do trong thông báo: bài về lỗi bị từ chối do Broken Functionality hướng dẫn chi tiết thông báo về chức năng phổ biến nhất. Đừng xây dựng lại TWA thành WebView chỉ vì một thanh trình duyệt. Nếu ứng dụng của bạn được tạo bằng công cụ AI, bài đăng ứng dụng vibe coding lên Google Play trình bày toàn bộ lộ trình từ dự án đến Play.
Thử nghiệm TWA với tài khoản cá nhân mới
Tài khoản nhà phát triển cá nhân được tạo sau ngày 13 tháng 11 năm 2023 vẫn cần một đợt thử nghiệm khép kín với ít nhất 12 người thử nghiệm duy trì tham gia liên tục trong 14 ngày trước khi đăng ký quyền truy cập vào kênh phát hành công khai. Những tester đó cài bản build do Play ký, đúng là nơi lỗi này xuất hiện. PrimeTestLab cung cấp 12+ tester thật từ $19.99 (cộng 5% phí dịch vụ), và nếu Google không cấp quyền truy cập vào kênh phát hành công khai sau khi hoàn tất đợt thử nghiệm, bạn được chọn thử nghiệm lại miễn phí hoặc hoàn tiền toàn bộ. Xem cách dịch vụ 12 tester hoạt động.
Câu hỏi thường gặp
Khi dùng Play App Signing, SHA-256 nào cần đưa vào assetlinks.json?
SHA-256 của chứng chỉ khóa ký ứng dụng hiển thị trên trang Play app signing trong Play Console. Chứng chỉ đó ký các bản build mà mọi người cài từ Google Play. Chỉ thêm dấu vân tay của khóa tải lên hoặc khóa debug nếu bạn cũng muốn các bản build tự cài được xác minh.
Vì sao TWA của tôi chạy đúng từ Android Studio nhưng hiện thanh URL khi cài từ Google Play?
Các bản build bạn tự cài được ký bằng khóa debug hoặc khóa tải lên của bạn, trong khi Google Play phân phối ứng dụng được ký bằng khóa ký ứng dụng. Nếu website của bạn chỉ liệt kê chứng chỉ trên máy của bạn, việc xác minh sẽ thất bại với bản cài từ Play và Chrome chuyển sang Custom Tab có thanh trình duyệt.
Khóa ký ứng dụng nằm ở đâu trong Play Console hiện tại?
Trong mục Protected with Play. Google hiện ghi nhận hai đường dẫn: Play Store distribution, rồi Go to Play app signing; và Play Store protection, rồi Manage Play app signing. Sao chép SHA-256 certificate fingerprint từ phần App signing key certificate.
assetlinks.json có thể liệt kê nhiều hơn một dấu vân tay SHA-256 không?
Có. Trường sha256_cert_fingerprints là một mảng và hỗ trợ nhiều dấu vân tay cho cùng một gói, ví dụ một bản build debug và bản build do Play ký. Một application ID khác cần câu lệnh riêng.
Sau khi sửa assetlinks.json, bao lâu thì thanh trình duyệt biến mất?
Google không công bố một thời gian chờ duy nhất cho TWA. Hãy xóa mọi bộ nhớ đệm CDN, xác nhận tệp thực tế trả về HTTP 200 dạng JSON mà không chuyển hướng, rồi cài lại ứng dụng từ Google Play; trên thiết bị thử nghiệm, xóa dữ liệu trình duyệt có thể loại trừ trạng thái lưu trong bộ nhớ đệm. Việc xác minh Android App Links có thời gian riêng, có thể mất đến bảy ngày trên Android 15 trở lên.
assetlinks.json sai có khiến TWA bị từ chối trên Google Play không?
Tài liệu hiện tại mô tả việc chuyển sang Custom Tab có giao diện trình duyệt, không phải tự động bị từ chối. Quá trình xem xét của Play đánh giá xem ứng dụng có hoạt động và mang lại trải nghiệm thực sự hay không, nên một tệp đúng sửa được thanh trình duyệt nhưng tự nó không quyết định kết quả xem xét.
Tester thử nghiệm khép kín có thấy thanh trình duyệt không?
Có, nếu website thiếu chứng chỉ ký ứng dụng, vì tester thử nghiệm khép kín cài bản build do Play ký. Hãy thử bản sửa với bản cài đặt đó thay vì APK cài thủ công, và nhớ rằng các đường liên kết chia sẻ ứng dụng nội bộ được ký bằng một khóa khác.
Bước kiểm tra Digital Asset Links đã đạt. Vì sao thanh vẫn còn?
Hãy kiểm tra xem cái gì đã đạt. Một danh sách câu lệnh có thể chứa liên kết cho một gói hoặc chứng chỉ khác, và ngay cả một phép kiểm tra chính xác cũng chỉ kiểm tra những giá trị bạn cung cấp. Hãy xác nhận bản build được cài dùng đúng danh tính đó, theo dõi origin mà ứng dụng thực sự mở tới và đọc nhật ký xác minh của trình duyệt. Trạng thái App Links của Android là một tín hiệu riêng.
Chuyển hướng www hoặc trang đăng nhập có thể làm thanh xuất hiện lại không?
Có. Việc xác minh TWA áp dụng cho origin, và khi điều hướng ra khỏi một origin đã được xác thực, giao diện trình duyệt sẽ hiển thị. Hãy kiểm tra ứng dụng mở tới đâu sau các lần chuyển hướng và cấu hình mọi origin bạn kiểm soát ở cả trong ứng dụng lẫn trong assetlinks.json riêng của origin đó. Một trang đăng nhập trên tên miền của công ty khác không nằm trong phạm vi tệp của bạn, và bạn không thể đăng liên kết của nó.
bubblewrap validate có kiểm tra dấu vân tay ký của Play không?
Không. Bubblewrap mô tả validate là bước kiểm tra PWA của bạn theo các tiêu chí chất lượng, nên việc đạt bước này không nói lên điều gì về việc ứng dụng cài từ Play có khớp với danh sách chứng chỉ của bạn hay không. Dùng các lệnh fingerprint để chuẩn bị assetlinks.json, đăng tệp, kiểm tra đúng tên miền, gói và chứng chỉ, rồi thử bản cài từ Play.
Tôi có cần chuyển TWA sang WebView để bỏ thanh trình duyệt không?
Đó không phải bước đầu tiên. Hãy sửa danh tính ký của ứng dụng được cài, cách website phân phát tệp và các origin mà ứng dụng mở, rồi thử lại. Nếu vấn đề thực sự là hành vi trình duyệt không được hỗ trợ, xác thực hoặc một thông báo chính sách cụ thể, hãy tìm hiểu riêng vấn đề đó trước khi quyết định một trình bao bọc khác có phù hợp với ứng dụng của bạn hay không.
Tóm lại
Tóm tắt
Thanh trình duyệt trên một TWA cài từ Play bắt đầu bằng một phép so sánh: chứng chỉ đã ký bản build được cài so với các dấu vân tay trong assetlinks.json trên website của bạn. Sao chép SHA-256 của khóa ký ứng dụng từ Play app signing, đăng JSON chuẩn nghiêm ngặt tại đúng origin với mã HTTP 200 trực tiếp, kiểm tra đúng gói và chứng chỉ, rồi thử bản build mà tester sẽ cài. Nếu dấu vân tay đã khớp, hãy xem xét origin, chuyển hướng, trình duyệt và bộ nhớ đệm trước khi xây dựng lại bất cứ thứ gì.
Nguồn đã kiểm tra Ngày 16 tháng 10 năm 2026
Nhãn menu của Play Console là thông tin thay đổi nhanh nhất trên trang này. Nếu các đường dẫn ở trên không còn khớp với Console của bạn, hãy tìm Play app signing trong mục Protected with Play, hoặc tìm kiếm "app signing" trong Console.