🙌

[Android] Algorithm HmacPBESHA256 not available

2021/07/10に公開

何がtriggerになったのか分からないのですが、突然、Android Studioのdebug build時にapkへのsigningが失敗するようになりました。Flutterの環境を整えていた最中でしたが、Androidアプリのビルドでも起こるようになったので、あまり関係ないかな?とは思ってます。

  • M1 Macbook Air 13 inch
  • Android Studio 4.2.2

Error message曰く、~/.android/debug.keystore に関して Algorithm HmacPBESHA256 not available とのことです。

How I could solve it

まず https://note.com/iga34engineer/n/ndbe247c8e23a こちらを参考にさせていただき、keystoreを再生成します。

次に2つのoptionがあると思います。

1. Specify debug keystore from signingConfigs

1つめは build.gradlesigningConfigs に、その再生成したkeystoreを直接していする方法。app/ 配下へkeystore (jks) を移動し、

signingConfigs {
    release {
        storeFile file("release.jks")
        storePassword "xxx"
        keyAlias "xxx"
        keyPassword "xxx"
    }
    debug {
        storeFile file("debug.jks")
        storePassword "android"
        keyAlias "androidebug"
        keyPassword "android"
    }
}

とでもすれば良いです (逆に複数人で開発してる場合は自然とこのような手順を踏むと思いますが)。

ですがこの方法ですと、また別のアプリを作り始めた時に同じことが起こります。学習のために小さなprojectを作っては捨て、みたいなことを想定するとなかなか面倒です。

2. Replace ~/.android/debug.keystore

https://developer.android.com/studio/publish/app-signing?hl=ja#debug-mode によると、 ~/.android/debug.keystore というのは環境セットアップ後の初回ビルドの際にIDEによって自動生成される物なのですね。

であれば、これは置き換えてしまっても特に困ったことは起こらなそうです (たぶん)。

私の手元で ~/.android/debug.keystore をdeleteし (他の場所に念のためbackupし) 、作成したjksファイルで置き換えたところ、 run > signing > install は動くようになりました。

Discussion