0

私の場合、古いapkファイル名には署名情報がアライメントされておらず、署名されていません。これらの古いファイル名は、この方法では、モジュールのGradleファイルに名前が変更されました:このリネームの結果でapkファイル名に署名情報を追加する

versionCode buildNumber() 
versionName "${versionMajor}.${versionMinor}" 

、署名情報(:

applicationVariants.all { variant -> 
    variant.outputs.each { output -> 
     output.outputFile = new File(
       output.outputFile.parent, 
       output.outputFile.name.replace(".apk", "-${variant.versionCode}-${variant.versionName}.apk")) 
    } 
} 

バージョンコードとバージョン名は、次のように設定してしまいましたアライメントされていないか、または符号なし)がバリアントバージョンコードの前にありました。

私はgradle:3.0.0-beta6を使用しています。したがって、私は以前の方法を使用することはできません。なぜなら、outputFileは読み取り専用に変更され、名前を変更することができないからです。今私はこのようになります私のGradle、新しい名前変更メソッドを追加しようとしました:新しいAPK名はほぼ古いもののように見え、これと

android.applicationVariants.all { variant -> 
    variant.outputs.all { 
     outputFileName = "${archivesBaseName}-${variant.baseName}-${variant.versionCode}-${variant.versionName}.apk" 
    } 
} 

が、署名情報ベース名とversionCodeの間で不足しています。 まだ署名されていないので、署名のない情報が必要です。

誰でもハードコーディングなしでこの情報を追加する方法を知っていますか?

この情報は、アプリが署名されている場合は消えますが、可能であれば名前の変更方法は変更されません。

答えて

1

はただ、誰かがこのために検索された場合のために、私はこのコードでこの問題を解決:

android.applicationVariants.all { variant -> 
    variant.outputs.all { 
     outputFileName = "${archivesBaseName}-${variant.baseName}${variant.variantData.isSigned()?"":"-unsigned"}-${variant.versionCode}-${variant.versionName}.apk" 
    } 
} 
関連する問題