Keep Android build provenance clean after unchanged Unity settings rewrite

This commit is contained in:
NINI
2026-10-05 04:01:11 +09:00
parent f5e8f152ad
commit b172c776a8
2 changed files with 13 additions and 1 deletions
+12
View File
@@ -47,6 +47,18 @@ try {
$record.apkSha256 = (Get-FileHash -LiteralPath $apkPath -Algorithm SHA256).Hash
& (Join-Path $PSScriptRoot 'android/inspect-apk.ps1') -ApkPath $apkPath -EvidenceDir $evidenceDir -SourceCommit $record.sourceCommit -SourceDirty $record.sourceDirty -MetadataName 'apk-metadata.json'
$record.apkMetadata = Join-Path $evidenceDir 'apk-metadata.json'
# Unity rewrites these files with LF; restore only when Git proves their content is unchanged.
$record.normalizedUnchangedSettings = @()
if (!$record.sourceDirty) {
foreach ($settingsPath in @('ProjectSettings/GraphicsSettings.asset','ProjectSettings/ProjectAuditorSettings.asset','ProjectSettings/ProjectSettings.asset')) {
& git diff --quiet HEAD -- $settingsPath
if ($LASTEXITCODE -eq 0 -and [bool](& git status --porcelain -- $settingsPath)) {
& git restore --worktree -- $settingsPath
if ($LASTEXITCODE -ne 0) { throw "Cannot restore unchanged generated setting: $settingsPath" }
$record.normalizedUnchangedSettings += $settingsPath
}
}
}
$record.sourceCommitEnd = (& git rev-parse HEAD)
& git update-index --refresh | Out-Null
$record.sourceDirtyEnd = [bool](& git status --porcelain)