build(mobile): require explicit validated Android release identity
This commit is contained in:
1 parent
52f792f00f
commit
456919df43
2 files changed
+39
-2
No files matched your search
@@ -53,6 +53,26 @@ npm run android:sync --workspaces=false
|
|||||||
üretim imzası içermez ve kurulabilir sürüm olarak paylaşılmamalıdır. Özel üretim
|
üretim imzası içermez ve kurulabilir sürüm olarak paylaşılmamalıdır. Özel üretim
|
||||||
imza anahtarı oluşturulmadı; mağaza hesabı veya ücretli hizmet açılmadı.
|
imza anahtarı oluşturulmadı; mağaza hesabı veya ücretli hizmet açılmadı.
|
||||||
|
|
||||||
|
Yayın adayı için sürüm ve Android sürüm kodu birlikte açıkça verilir:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
.\android\gradlew.bat -p android assembleRelease '-PaiturkReleaseVersion=0.1.4-beta.1' '-PaiturkReleaseVersionCode=6'
|
||||||
|
```
|
||||||
|
|
||||||
|
Bu komut yine **imzasız** APK üretir; üretim imzasını veya cihaz kabulünü atlamaz.
|
||||||
|
İki parametreden yalnız biri, `-dev` etiketi veya 5 ve daha küçük sürüm kodu
|
||||||
|
verilirse derleme durur. Parametresiz geliştirici derlemesi `0.1.4-dev` / 5 kalır.
|
||||||
|
Sonraki yayınlarda sürüm kodunu son dağıtılmış APK'dan daha büyük seçin; buradaki
|
||||||
|
alt sınır yalnız mevcut geliştirme sürümünü korur, uzak yayın envanterini sorgulamaz.
|
||||||
|
|
||||||
|
12 Eylül 2026: gerçek Gradle `assembleRelease` çalışması bu parametrelerle 55
|
||||||
|
saniyede tamamlandı; `aapt2` uygulama kimliği, `0.1.4-beta.1` / 6 ve debug
|
||||||
|
bayrağının olmadığını doğruladı. Test çıktısının SHA-256 değeri
|
||||||
|
`a93b93b3080ec484cc998ef316528ff7b947fa366b2ff5de375386acc66fffc4`.
|
||||||
|
`apksigner verify` imzasız çıktıyı reddetti (beklenen sonuç). Ayrı gerçek Gradle
|
||||||
|
çalışmaları eksik sürüm kodunu, `0.1.4-dev` yayın etiketini ve sürüm kodu 5'i
|
||||||
|
reddetti. Bu çıktı yayımlanmadı; imza ve cihaz kabulü değildir.
|
||||||
|
|
||||||
### Dağıtım APK'sının doğrulanması
|
### Dağıtım APK'sının doğrulanması
|
||||||
|
|
||||||
`scripts/verify-android-release.mjs` dağıtım öncesi salt okunur APK kontrolüdür.
|
`scripts/verify-android-release.mjs` dağıtım öncesi salt okunur APK kontrolüdür.
|
||||||
|
|||||||
@@ -1,5 +1,22 @@
|
|||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
|
// Release identity is explicit; ordinary developer builds retain the -dev label.
|
||||||
|
def releaseVersion = providers.gradleProperty('aiturkReleaseVersion').orNull
|
||||||
|
def releaseCode = providers.gradleProperty('aiturkReleaseVersionCode').orNull
|
||||||
|
if ((releaseVersion == null) != (releaseCode == null)) {
|
||||||
|
throw new GradleException('Both aiturkReleaseVersion and aiturkReleaseVersionCode are required')
|
||||||
|
}
|
||||||
|
def selectedVersionCode = 5
|
||||||
|
if (releaseVersion != null) {
|
||||||
|
if (!(releaseVersion ==~ /\d+\.\d+\.\d+(?:-beta\.\d+)?/)) {
|
||||||
|
throw new GradleException('Release version must be X.Y.Z or X.Y.Z-beta.N; -dev is not a release')
|
||||||
|
}
|
||||||
|
if (!(releaseCode ==~ /[1-9]\d{0,9}/) || releaseCode.toLong() <= 5 || releaseCode.toLong() > 2100000000L) {
|
||||||
|
throw new GradleException('Release version code must be greater than 5 and at most 2100000000')
|
||||||
|
}
|
||||||
|
selectedVersionCode = releaseCode.toInteger()
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "online.turkservis.aiturk.mobile"
|
namespace = "online.turkservis.aiturk.mobile"
|
||||||
compileSdk = rootProject.ext.compileSdkVersion
|
compileSdk = rootProject.ext.compileSdkVersion
|
||||||
@@ -7,8 +24,8 @@ android {
|
|||||||
applicationId "online.turkservis.aiturk.mobile"
|
applicationId "online.turkservis.aiturk.mobile"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 5
|
versionCode selectedVersionCode
|
||||||
versionName "0.1.4-dev"
|
versionName releaseVersion ?: "0.1.4-dev"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
aaptOptions {
|
aaptOptions {
|
||||||
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
||||||
|
|||||||
Reference in new issue
Block a user