Logo
    AndroidのKeystoreを手動で作った忘備録

    AndroidのKeystoreを手動で作った忘備録

    はじめに

    ゆとり世代の中野です。

    さっそくチャレンジについて書いていきます。

    チャレンジする背景

    • EASのAndroid用のCredentialを作りたい

    チャレンジ内容

    • コマンドでEASに登録な成果物を作成する

    やったこと

    作成コマンド

    keytool -J-Dkeystore.pkcs12.legacy -genkey -v -keystore production.keystore -keyalg RSA -storepass production -alias production -validity 9125 -dname "CN=Developer, O=production, S=Tokyo, C=Japan"

    optionについて

    項目
    値
    Algorithm
    2048bit RSA
    Validity
    9125 (25年)
    Keystore type
    PKCS12
    Keystore password
    {任意のパスワード}
    Alias name
    {任意のエイリアス名}
    Alias password
    {Keystore password と同一のものが設定されます}
    Domain CN
    CommonName = 人の通称, おすすめは "Developer" など
    Domain O
    OrganizationName = 組織名称, アプリを所有・公開する組織の英語表記
    Domain S
    StateName = 州名・地方名, "Tokyo" など
    Domain C
    Country = 国名, "Japan" など

    生成した Keystore の確認

    production.keystore の確認

    keytool -list -v -keystore production.keystore -storepass production

    コマンドの出力を英語表記にする

    keytool -J-Duser.language=en -list -v -keystore production.keystore -storepass production

    JKS 形式を PKCS12 形式へ変換する

    keytool -J-Dkeystore.pkcs12.legacy -v -importkeystore -srckeystore production.keystore -srcalias production -srcstorepass production -srckeypass production -destkeystore production.keystore.p12 -deststoretype PKCS12 -storepass production
    • PKCS12 形式の Alias password は Keystore password と同一のものが設定されます

    結論

    • production のところだけ用途ごとに置き換えれば利用できる
    • EASではパスワード求められなかったけどコマンドで作ると求められたので必要
    • 上記の手順で最後までやるとEAS上で必要な*.p12を作成することができる

    さいごに

    • AndroidStudioつかうとか色々情報あったけど結局なんだかんだコマンドが一番使いやすい
    • 先人のおかげでコマンドでKeyStoreの作成方法を完全に理解した(ありがとうございます)
    Android: Debug Keystore と Release Keystore をコマンドから生成する - Qiita

    デバッグ用署名とリリース用署名を生成するコマンドまとめ。 keytool は JDK のバージョンに依存します。本記事は JDK 17 環境を想定しています。 Android Studio Arctic Fox 2020.3.1 時点では Android Studio にバンドルされている JDK は JDK 11 です。 JDK 16 以上の keytool で署名鍵を作成すると、Android Studio (JDK11) からのビルド・署名時に以下のエラーが発生します。 これは、JDK 16 から keytool が PKCS12 形式で鍵を生成する際に PBES2 SHA256 形式を用いるようになったが、PBES2 SHA256 は JDK 12 以上でしか対応しておらず、JDK 11 では読み取れないためです。 Upgraded the Default PKCS12

    qiita.com

    Android: Debug Keystore と Release Keystore をコマンドから生成する - Qiita

    yutanakano

    WEBエンジニア

    大阪生まれのゆとり世代です

    趣味はバイクでツーリングに行くこと

    愛車は Ninja ZX-25R SE KRT EDITION

    Expoでプロダクトを作っています

    image

    ©ゆとりちゃれんじ

    GitHubXInstagram