Capgo Home

Android署名

Android キーストア生成ツール

Generate an Android keystore online in seconds, without Android Studio or keytool. Get a PKCS#12 release keystore, the PEM certificate, and the SHA-1 and SHA-256 fingerprints, ready for Gradle, Capacitor, fastlane, CI, and Google Play.

Container

PKCS#12

コンテナ

PKCS#12

キー

RSA 2048、SHA-256

リリースチェックリスト

  1. 1. このアプリに長期的に共存するアレサとパスワードを選択してください。
  2. 2. キーストアをダウンロードし、秘密管理者に保存する必要があるメタデータを保存してください。
  3. 3. GradleまたはCI環境で同じアレサとパスワードを設定してください。
  4. 4. アップロードキーを安定させるため、将来のPlayリリースが機能しないようにしないでください。

入力

キーストアの詳細

署名証明書に埋め込むべきサブジェクト情報を入力し、安定したアレサを選択してください。

出力

生成されたAndroid署名バンドル

生成後、ダウンロード可能なキーストア、証明書エクスポート、およびストア設定またはOAuth統合に必要な指紋が表示されます。

署名バンドルを生成して、ここでアリーアス、指紋、ファイルダウンロードを表示します。

基本

Android キーストアとは何ですか?

Android キーストアは、プライベート キーと証明書を含むパスワード保護ファイルです。アプリをインストールまたは公開する前に、すべての APK と Android アプリ バンドルは署名する必要があります。Android は、すでにインストールされているバージョンと同じキーで署名された場合にのみアップデートを認めます。

したがって、キーストアはプロジェクトで最も重要なファイルの 1 つです。Play アプリ署名を使用すると、Google はアップロード キーとして機能し、再署名する前にファイルを確認します。Play アプリ署名を使用しない場合は、アプリ署名キー自体であり、失うとアップデートができなくなります。 キーのアップロードセキュリティとプライバシー キーストアの生成方法 キーストアは、HTTPS で無状態の __CAPGO_KEEP_0__ エンドポイント上でオンデマンドで生成され、直接ブラウザにダウンロードされます。

Android キーストアとは keytool Android スタジオの署名ウィザードとともに、25年間の有効期限がGoogle Playの要件を満たす。

したがって、キーストアはプロジェクトで最も重要なファイルの 1 つです。Play アプリ署名を使用すると、Google はアップロード キーとして機能し、再署名する前にファイルを確認します。Play アプリ署名を使用しない場合は、アプリ署名キー自体であり、失うとアップデートができなくなります。

このジェネレータは、PKCS#12 (.p12) キーストアと RSA 2048-bit キー、SHA-256 証明書を生成します。これは、Android Studio の署名ウィザードと同じ出力であり、25 年のデフォルトの有効期限が Google Play の要件を満たします。

  • HTTPSでHTTPSのstatelessCapgoエンドポイントが要求に応じてキーストアを作成し、ブラウザに直接ダウンロードとして返します。
  • リクエストは Cache-Control: no-store. 秘密鍵、パスワード、ファイルは、リクエストの後にデータベースに保存されない。
  • キーストアは、パスワードで保護され、AES-256暗号化がPKCS#12コンテナ内で使用されます。
  • アカウントやサインアップは必要ありません。リクエストは、悪用を防ぐために、制限されます。

機械上でキーが必要な場合、以下のコマンドを実行してください。同様のキーストアが生成されます。 keytool 同等のkeytoolコマンド

ステップバイステップ
keytool -genkeypair -v \
  -storetype PKCS12 \
  -keystore release.p12 \
  -alias release \
  -keyalg RSA -keysize 2048 \
  -validity 9125 \
  -dname "CN=Jane Doe, O=Acme Mobile, C=DE"

Androidキーストアをオンラインで生成する方法

Google Playで署名されたリリースに至るまで、6つのステップ。最初の3ステップは1分未満です。

ステップ1

  1. 証明書詳細を入力

    ステップバイステップ

    Add your full name, email, and two-letter country code. Organization, unit, city, and state are optional and only appear in the certificate subject.

  2. ステップ2

    エイリアス、有効期限、パスワードを選択

    エイリアスを簡単に設定するには「リリース」や「アップロード」という名前を使用し、25年間の有効期限を選択し、パスワードを8文字以上で強く設定してください。すべての情報を書き留めてください。

  3. Step 3

    キーストアを生成してダウンロード

    「キーストアを生成」ボタンをクリックし、.p12形式のキーストアとPEM形式の証明書をダウンロードしてください。結果パネルからSHA-1とSHA-256の指紋をコピーしてください。

  4. ステップ 4

    キーストアとクレデンシャルをバックアップ

    キーストアファイル、エイリアス、パスワードをパスワードマネージャーやシークレットマネージャーに保存してください。キーストアをGitにコミットしないでください。

  5. ステップ5

    ビルド設定で署名を設定

    Point Gradle, the Capacitor CLI, fastlane, or Capgo Cloud Build at the keystore with the alias and password, then build a signed release AAB or APK.

  6. ステップ6

    Google Playに署名アプリをアップロード

    Play Consoleに署名されたAndroidアプリバンドルをアップロード。Playアプリ署名機能の場合、このキーストアはアップロードキーになり、Googleが最終的なアプリ署名キーを管理します。

生成されたキーストアを使用

Androidアプリに署名する

aliasとパスワードを上記の値に置き換えます。キーストアはPKCS#12なので、キー パスワードはストア パスワードと同じです。

Gradle署名設定

Capacitor、Ionic、React Native、Flutter、ネイティブプロジェクトに対応します。パスワードはgradle.propertiesまたは環境変数に保存してください。

android/app/build.gradle
// android/app/build.gradle
android {
    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_STORE_PASSWORD
            storeType "pkcs12"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

# ~/.gradle/gradle.properties (keep out of Git)
RELEASE_STORE_FILE=/path/to/release.p12
RELEASE_STORE_PASSWORD=your-password
RELEASE_KEY_ALIAS=release

Capacitor CLI

Capacitorアプリの署名済みAndroidアプリバンドルを1つのコマンドでビルドします。

Capacitor署名ビルド
bunx cap build android \
  --keystorepath ./release.p12 \
  --keystorepass "your-password" \
  --keystorealias release \
  --keystorealiaspass "your-password" \
  --androidreleasetype AAB

CapgoCloudビルド

__CAPGO_KEEP_0__を保存し、 CapgoCloudビルド __CAPGO_KEEP_0__の各リリースを署名してアップロードしてください。

Capgo CLI
bunx @capgo/cli@latest build credentials save \
  --platform android \
  --keystore ./release.p12 \
  --keystore-alias release \
  --keystore-key-password "your-password" \
  --keystore-store-password "your-password"

「Capgo」について

fastlane

Fastfile
gradle(
  task: "bundle",
  build_type: "Release",
  properties: {
    "android.injected.signing.store.file" => ENV["RELEASE_STORE_FILE"],
    "android.injected.signing.store.password" => ENV["RELEASE_STORE_PASSWORD"],
    "android.injected.signing.key.alias" => ENV["RELEASE_KEY_ALIAS"],
    "android.injected.signing.key.password" => ENV["RELEASE_STORE_PASSWORD"],
  }
)

Fastfile

CIで検証、変換、保存します。

aliasと指紋を確認し、JKS形式に変換するか、CIシークレット用にエンコードします。
# Inspect the keystore, alias, and fingerprints
keytool -list -v -keystore release.p12 -storetype PKCS12

# Convert to JKS if an older tool requires it
keytool -importkeystore \
  -srckeystore release.p12 -srcstoretype PKCS12 \
  -destkeystore release.jks -deststoretype JKS

# Base64-encode the keystore for a CI secret
base64 -i release.p12 | tr -d '\n' > release.p12.base64

トラブルシューティング

Androidキーストアエラーと修正

キーストアが改ざんされた、またはパスワードが間違っている
ストアパスワードが間違っている。パスワードマネージャーからコピーし、CIシークレットの末尾にスペースがあるかどうか確認してください。
リリース用のキーがキーストアに存在しない
エイリアスが一致しない。キーストアのエイリアスを確認するには、keytool -listを実行してください。エイリアスは大文字小文字区別されます。
最終ブロックが適切にパディングされていない
キーパスワードが間違っている。PKCS#12キーストアの場合、キーパスワードはストアパスワードと等しくなければなりません。
キーストアの形式が不正
古いJava 8のツールチェーンがPKCS#12ファイルをJKSとして読み取っている。GradleでstoreTypeを"pkcs12"に設定するか、keytool -importkeystoreを使用してファイルをJKSに変換してください。
Androidアプリバンドルが間違ったキーで署名されている
Google Playは元のアップロードキーを期待しています。元のアップロードキーで署名するか、Play Consoleでアップロードキーをリセットするには、PEM証明書から新しいキーストアを作成してください。
Google Sign-In または Firebase Auth はリリースビルドでのみ失敗します。
リリース SHA-1 と SHA-256 の指紋を Firebase に追加し、Play Console から Play アプリ署名キー指紋も追加してください。

FAQ

Android キーストア生成に関する FAQ

Android キーストアに関する質問

Android キーストアは、パスワード保護されたファイルで、プライベートキーと証明書を保持するものです。APK または Android アプリ バンドルを署名するために使用されます。Android と Google Play は、更新が同じ開発者から来ていることを確認するために、その署名を使用します。したがって、すべての将来のリリースのアプリは同じキーで署名する必要があります。

Android キーストアをオンラインで Android Studio なしで生成するにはどうすればよいですか?

Android スタジオを使用せずにオンラインで Android キーストアを生成するにはどうすればよいですか。

Fill in your name, email, country code, a key alias, a validity period, and a password in the form above, then select Generate keystore. You get a ready-to-use .p12 keystore, a PEM copy of the certificate, and the SHA-1 and SHA-256 fingerprints. No Android Studio, JDK, or keytool install is needed.

このAndroidキーストアジェネレータはどのようなファイル形式で出力しますか。

オンラインでキーストアを生成することは安全ですか? 秘密鍵はどこに保存されますか?

Android キーストア生成に関する FAQ

HTTPSでCapgoエンドポイントから生成されたキーストアは、直ちにブラウザに返されます。レスポンスはCache-Control: no-storeで送信され、プライベートキー、パスワード、ファイルはレスポンス後にデータベースに書き込まれずに保持されません。機密情報が機械上に残らないようにするセキュリティポリシーが必要な場合は、このページに示されているkeytoolコマンドを使用してください。

Google Playのリリース用にこのキーストアを使用できますか?

はい。Play App Signingに登録された新しいアプリのアップロードキーとして、または直接APK配布のアプリ署名キーとして使用してください。Google Playでは、証明書が少なくとも2033年10月22日まで有効であることを要求していますが、デフォルトの25年有効期限はこれをカバーしています。

ストアパスワードとキー パスワードは異なるべきですか?

No. PKCS#12 keystores use one password for the container and the key. In Gradle, the Capacitor CLI, fastlane, or Capgo Cloud Build, enter the same value for both the store password and the key password.

どの有効期限を選択するべきですか?

デフォルトの25年を維持してください。Googleは少なくとも25年を推奨しており、2033年10月22日までの有効期限の証明書でアップロードした場合、Google Playはアップロードを拒否します。既存のキーを有効期限を延長することはできません。

キーストアまたはパスワードを失った場合に何が起こりますか?

Play App Signingを使用するアプリの場合、ここで新しいキーストアを生成し、PEM証明書をアップロードしてアップロードキーをGoogleからリセットするようにGoogleに依頼できます。Play App Signingを使用しない場合、失われたキーは同じアプリリストにアップデートを公開できないため、ファイル、エイリアス、パスワードをシークレットマネージャーに保存してください。

デバッグキーストアの場合にこのツールが必要ですか?

Usually not. The Android SDK creates a debug keystore automatically at ~/.android/debug.keystore with the password android and the alias androiddebugkey. Use this generator for release and upload keys that must stay stable across store releases.

SHA-1とSHA-256の指紋はどこにありますか?

生成された結果パネルに表示されています。Firebase、Google Sign-In、Google Maps、またはAndroid App Links(アセットリンクス.json)に登録してください。ただし、Play App Signingがアプリを再署名すると、GoogleサービスもPlay Consoleからアプリ署名キー指紋を登録する必要があります。

Capacitor、Ionic、React Native、Flutterアプリにも機能しますか?

はい。キーストアはフレームワーク依存ではありません。Gradleを使用する任意のAndroidビルドが署名できます。Capacitor、Ionic、React Native、Flutter、またはネイティブのKotlinまたはJavaプロジェクトも含まれます。