APK署名者

オンラインAPK署名者 — APKファイルに無料で署名する方法

完全な APK署名者 ガイド — apksigner、jarsigner、またはデバッグ キーストアを使用して APKファイルに署名する を行う方法を学びます。開発者とテスター向けの無料のステップバイステップ APK署名チュートリアル。 Android Studio を使用せずに APK に署名する。

APK ファイルに署名が必要なのはなぜですか?

すべての Android アプリは、インストールする前にデジタル署名する必要があります。署名にはいくつかの目的があります。

  • アプリ開発者の身元を確認します
  • APK が改ざんされていないことを確認します
  • Android がアプリのアップデートを元のアップデートと一致させることができます
  • すべての Android デバイスにインストールするために必要です

デスクトップツールが必要です

APK 署名にはコマンドライン ツール (JDK / Android SDK) が必要です。これは Web ブラウザでは実行できません。以下のガイドに従って、コンピューター上で APK に署名します。

方法 1: apksigner を使用して署名する (推奨)

apksigner は Google の公式 APK 署名ツールであり、Android SDK Build Tools に含まれています。

ステップ 1: キーストアを生成する

keytool -genkey -v -keystore my-release-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 \
  -alias my-key-alias

ステップ 2: APK に署名する

apksigner sign --ks my-release-key.jks \
  --ks-key-alias my-key-alias \
  --out signed-app.apk unsigned-app.apk

ステップ 3: 署名を検証する

apksigner verify --verbose signed-app.apk

方法 2: jarsigner を使用して署名する (レガシー)

# Sign
jarsigner -verbose -sigalg SHA256withRSA \
  -digestalg SHA-256 \
  -keystore my-release-key.jks \
  app-unsigned.apk my-key-alias

# Verify
jarsigner -verify -verbose app-signed.apk

ステップ 4: Zipalign (重要!)

署名後、zipalign を使用して APK を最適化します。

zipalign -v 4 signed-app.apk aligned-app.apk

デバッグ署名 (テスト用)

テスト目的では、デフォルトの Android デバッグ キーストアを使用できます。

# Location of debug keystore:
# Linux/Mac: ~/.android/debug.keystore
# Windows: C:\Users\{USERNAME}\.android\debug.keystore

# Sign with debug key
apksigner sign --ks ~/.android/debug.keystore \
  --ks-key-alias androiddebugkey \
  --ks-pass pass:android \
  app.apk

署名ツールの比較

項目apksignerジャーシグナー
V1 署名
V2 署名
V3 署名
推奨遺産

APK 署名者 — よくある質問

APK 署名、キーストア、Android コード署名に関するよくある質問

APKファイルに署名する には、apksigner (推奨) または jarsigner が必要です: (1) keytool -genkey を使用してキーストアを生成する、(2) apksigner sign --ks my-key.jks --out signed.apk unsigned.apk で APK に署名する、(3) apksigner verify signed.apk で署名を検証する。テスト目的で Android デバッグ キーストアを使用することもできます。これは Android Studio を使用せずに APK に署名する への標準的な方法です。

APKオンラインに署名 を安全に実行することはできませんが (APK の署名には秘密キーストアが必要であり、これをサーバーにアップロードしてはいけないため)、無料の APK署名者ガイド を使用してローカル マシン上の APK ファイルに署名できます。ステップバイステップのチュートリアルでは、Google の公式 apksigner ツールと jarsigner ツールを使用したプロセス全体を説明します。署名後、APK署名検証ツール を使用してオンラインで署名を無料で検証します。

V1 (JAR 署名): 元の Android 署名スキーム。各 ZIP エントリを個別に検証します。速度は遅いですが、Android のすべてのバージョンと幅広く互換性があります。 V2 (APK 署名スキーム): Android 7.0で導入されました。 APK 全体を全体として検証し、インストールを高速化します。 V3 (APK 署名スキーム v3): Android 9.0以降、キーローテーションをサポートします。 V4: Android 11.0 以降、ストリーミング インストールが可能になります。すべてのスキームをサポートするには、apksigner を使用します。 jarsigner は V1 のみをサポートします。

Android Studio を使用せずに APK に署名する へ: (1) Java JDK 8 以降をインストールする、(2) apksigner を含む Android SDK Build Tools をダウンロードするか、スタンドアロンのバンドル ツールをダウンロードする、(3) キーストアを生成する: keytool -genkey -v -keystore my-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias、(4) 署名する: apksigner sign --ks my-key.jks --out signed.apk app.apk。この方法は、Android Studio を完全にインストールする必要がなく、Windows、Mac、Linux で機能します。

ジップアライン は、APK 内の非圧縮データを 4 バイト境界に配置する Android SDK ツールです。この最適化により、アプリがデバイス上で実行されるときの RAM 消費量が削減されます。 重要: apksigner を使用している場合は、署名する前に zipalign を実行してください。 jarsigner (レガシー) を使用している場合は、署名後に zipalign を実行します。コマンド: zipalign -v 4 input.apk output.apk。 Google Play では、APK を送信するには zipalign する必要があります。

Android 11 ~ 15 でアライメント順序 (apksigner の前の zipalign) が重要な理由

変更またはマージされた APK に署名するときに開発者やモッダーが犯す最も頻繁な間違いの 1 つは、パッケージに署名する zipalign 後 を実行するか、Google の Android SDK apksigner の代わりに Java の従来の jarsigner ユーティリティを使用することです。 APK 署名スキーム v2 および v3 は ZIP アーカイブのバイナリ レイアウト全体の暗号ハッシュを計算するため、署名後に zipalign でバイト オフセットを変更すると、v2/v3 署名ブロックが直ちに無効になります。

Android 11 (API レベル 30) 以降、Android 14 および 15 に厳密に適用されるようになった PackageManager では、最新の SDK レベルを対象とする APK に対して 2 つの譲れない条件が必要になります。

  • 非圧縮 4 バイト アライメント resources.arsc: コンパイルされたリソース テーブル (resources.arsc) は、Android が RAM にコピーせずに直接メモリ マップ (mmap) できるように、非圧縮で保存し (STORED)、4 バイト境界に配置する必要があります。 zipalign -p -f -v 4 input.apk aligned.apk 前に 署名を常に実行します。
  • 必須の v2+ 署名ブロック: API 30 以降を対象とする APK に jarsigner (v1 META-INF/ 署名のみを書き込む) で署名すると、Android 11 ~ 15 は INSTALL_PARSE_FAILED_NO_CERTIFICATES でのインストールを拒否します。上記の対話型コマンド ジェネレーターを使用して、キーストア用の正確な apksigner --v2-signing-enabled=true コマンドを構築するか、APK署名検証ツール で署名された出力を確認します。
Mst Shaefale による設計と文書化 リード開発者兼 Android パッケージ アーキテクト • Android 12 ~ 15 で検証済み

XAPK to APK ツールキットのすべてのユーティリティは、JavaScript と WebAssembly を介してブラウザーで 100% ローカルに実行されます。特定のパッケージに関するエッジケースを見つけましたか?弊社のエンジニアリング チームに報告してください。