# Build Problems

### Không tăng Bundle Version Code khi build Android

#### Bundle Version Code là gì?

<span style="white-space: pre-wrap;">Bundle Version Code (BVC) là một </span>****số nguyên****<span style="white-space: pre-wrap;"> sử dụng để xác định phiên bản của ứng dụng. Số này </span>****không hiển thị cho người dùng**** nhưng rất quan trọng với Google Play Store và thiết bị Android để quản lý việc cập nhật ứng dụng.

****Khác với** `<strong class="editor-theme-bold editor-theme-code">Version</strong>`**<span style="white-space: pre-wrap;"> (version name) là một string để hiển thị cho người, mô tả về phiên bản ứng dụng.</span>

#### Đặc điểm chính

<span style="white-space: pre-wrap;">Là một </span>****số nguyên****<span style="white-space: pre-wrap;"> (0, 1, 2, 101...) được Unity khuyến nghị nên </span>****nhỏ hơn 100000 để**** [buildApkPerCpuArchitecture](https://docs.unity3d.com/ScriptReference/PlayerSettings.Android-buildApkPerCpuArchitecture.html)<span style="white-space: pre-wrap;"> có thể tạo ra version code hợp lệ.</span>

****Không hiển thị với người dùng.****

****Quan trọng**** cho việc cập nhật.

#### Vì sao cần tăng Bundle Version Code?

Như đã nói ở trên BVC được Google Play Store và Android sử dụng để xác định số phiên bản. Nên không thể cài đè một phiên bản có BVC nhỏ hơn phiên bản hiện tại hoặc trên Google Play Store, Google không chấp nhận việc cập nhật nếu bạn tải lên một phiên bản có BVC nhỏ hơn hoặc bằng phiên bản hiện tại.

#### Quy ước đánh số Bundle Version Code.

<span style="white-space: pre-wrap;">Dựa theo </span>****khuyến nghị của Unity,****<span style="white-space: pre-wrap;"> quy ước </span>****Semantic versioning****<span style="white-space: pre-wrap;"> ta có thể chia BVC thành 3 phần mỗi phần tương ứng với 2 chữ số tương ứng với </span>**`<strong class="editor-theme-bold editor-theme-code">MAJOR.MINOR.PATCH</strong>`**

<span style="white-space: pre-wrap;">Từ đó ta có công thức như sau </span>**`<strong class="editor-theme-bold editor-theme-code">bundleVersionCode = MAJOR*10000 + MINOR*100 + PATCH</strong>`**

#### Giải pháp hạn chế quên tăng Bundle Version Code!

<span style="white-space: pre-wrap;">Viết một script triển khai interface </span>[IPreprocessBuildWithReport](https://docs.unity3d.com/ScriptReference/Build.IPreprocessBuildWithReport.html)<span style="white-space: pre-wrap;"> để tự động tính BVC theo công thức trên.</span>

<span style="white-space: pre-wrap;">Tạo một của sổ Build Tools mới bằng </span>[EditorWindow](https://docs.unity3d.com/ScriptReference/EditorWindow.html)<span style="white-space: pre-wrap;"> để hiển thị các thông tin thường xuyên cần chỉnh sửa như Icon, BVC...</span>

****Hoặc kết hợp cả 2 cách trên.****