Tôi hiện đang làm việc trên một dự án Cordova và có vấn đề là 8 đã được nối một cách bí ẩn vào versionCode của dự án của tôi. Ví dụ: Mã phiên bản gốc của tôi là 100, Mã phiên bản mới của tôi là 1008Tại sao Cordova/Phonegap nối thêm 8 vào Mã phiên bản Android của tôi?
Tôi đã theo dõi vấn đề thông qua toàn bộ đường dẫn xây dựng và tìm mã có trách nhiệm trong tập lệnh Gradle Build.
if (Boolean.valueOf(cdvBuildMultipleApks)) {
productFlavors {
armv7 {
versionCode cdvVersionCode ?: defaultConfig.versionCode + 2
ndk {
abiFilters "armeabi-v7a", ""
}
}
x86 {
versionCode cdvVersionCode ?: defaultConfig.versionCode + 4
ndk {
abiFilters "x86", ""
}
}
all {
ndk {
abiFilters "all", ""
}
}
}
} else if (!cdvVersionCode) {
def minSdkVersion = cdvMinSdkVersion ?: privateHelpers.extractIntFromManifest("minSdkVersion")
// Vary versionCode by the two most common API levels:
// 14 is ICS, which is the lowest API level for many apps.
// 20 is Lollipop, which is the lowest API level for the updatable system webview.
if (minSdkVersion >= 20) {
defaultConfig.versionCode += 9
} else if (minSdkVersion >= 14) {
defaultConfig.versionCode += 8
}
}
Tôi không chắc chắn lý do tại sao cordova nghĩ rằng nó là đúng phải thay đổi mã phiên bản của tôi, và thêm vào đó, tôi không chắc chắn nếu hành vi này là đúng ... should not nó thêm số lượng và không thêm nó?
Tôi có thể chỉ xóa phần tương ứng trong build.gradle hoặc có một số ý nghĩa ẩn đằng sau hành vi này không?
Điều này thật tuyệt. Tôi nghĩ rằng tôi đã phạm sai lầm, nó vẫn còn trong 6.0.0 –
Có vẻ như sửa chữa đã được [sáp nhập gần đây] (https://github.com/apache/cordova-android/pull/270) để cordova-android gần đây nhưng chưa phát hành (cordova-android 5.1.1 không có bản sửa lỗi) –
Điều này dường như được khắc phục trong Cordova 6.2.0. Tuy nhiên, giờ đây, chữ số phụ không được thêm vào mã phiên bản nữa, APK mà tôi tạo bằng phiên bản Cordova này luôn có mã phiên bản nhỏ hơn so với các phiên bản trước và do đó google play không chấp nhận các APK này. – Ehsan