LoginSignup
9
12

More than 3 years have passed since last update.

[Android]apkへの署名周りまとめ

Last updated at Posted at 2020-10-15

1. キーワード

キーワード 説明
アプリ署名鍵 apkファイルを端末にインストールする際にはapkが署名済みでなければならない。
アップロード鍵 GooglePlayストアにアプリを公開する際に必要になる署名をするための鍵。
生成には署名情報(氏名/会社・部署/国・都道府県・市区町村)と、キーエイリアス、キーパスワードを設定する必要あり。
キーストア アプリ署名鍵 または アップロード鍵を保管しているファイル(.jks or .keystore)。
何らかの鍵を内蔵したキーストアを生成する際にはストアパスワードが必要。

2. アプリの公開について

Playストアへの署名済みアプリのアップロード形式 ローカルで生成したキーストア(内の鍵)の扱い Playストアで生成されたキーストアの扱い
apk アップロード鍵、アプリ署名鍵 生成しない
Android App Bundle アップロード鍵 アプリ署名鍵

3. debugビルドする場合の署名

端末をつないでAndrodid Studioでdebugビルドを実行すると、端末にアプリがインストールされる。
「アプリ署名鍵とか作った覚えないのに・・・」と思うが、それはAndroid SDK ツールで生成されたデバッグ証明書で自動的にデジタル署名してくれる

4. releaseビルドする場合の署名

前述のA. or B.で署名したapk or Bundleを作る手順は以下

4.1. Bundle か APKかの選択

  • AndroidStudioのメニューのBuild > Generate Signed Bundle or APK を選択。
  • 署名済みBundleを生成したい場合はAndroid App Bundleにチェック、署名済みapkを生成したい場合はAPKにチェックしてNextを押下

4.2. キーストアの生成

※すでに生成したものを使うならこの工程は不要

  • Create new... を押下し、以下の情報を入力してOKを押下
    • キーストアの出力先
    • キーストアのパスワード
    • 鍵のエイリアス
    • 鍵のパスワード
    • 署名情報(氏名、国、組織名... etc.最低1つ入力)

4.3 ビルド&署名

  • 以下を設定してNextを押下

    • 署名に使うキーストアのファイルパス
    • キーストアのパスワード
    • 鍵のエイリアス
    • 鍵のパスワード
  • Build Variantsでビルドの仕向けを選択してFinish
    →ビルドされる。保存先はAndroid StudioのEvent Logに出てくるlocateリンクを押せばわかる。

5. 署名済みapkが作成されるまでの流れ

証明書やら署名やらよくわからん言葉が出てくるので色々調べたところ、
androidではどうやらこんな感じっぽい。

androidにおける署名とは、「apk自体を対象として生成したハッシュ値をキーストアの秘密鍵で暗号化したもの」 を指すらしい。
また、「証明書で署名」 とかいうワードをググってるとたまに見かけて、
ハァ?わけわかんねぇな・・・と思っていたのだが、
どうやらこれは 公開鍵証明書の秘密鍵で署名 という意味らしい。
・・・いやいや、 「証明書で署名」だと、公開鍵使ってるみたいじゃん!全然ちげぇじゃねぇか!

で、「署名済みapk」には「apk本体」「署名」「公開鍵証明書」が含まれるみたい。

参考

https://developer.android.com/studio/publish/app-signing?hl=ja#sign_release
https://source.android.google.cn/security/apksigning?hl=ja
https://docsplayer.net/105771978-Agenda-android-%E3%82%A2%E3%83%97%E3%83%AA%E3%81%B8%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E7%BD%B2%E5%90%8D%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF-android-%E3%82%A2%E3%83%97%E3%83%AA%E3%81%B8%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E7%BD%B2%E5%90%8D%E4%BB%98%E4%B8%8E%E3%81%AE%E7%8F%BE%E7%8A%B6-%E5%BC%B1%E3%81%84%E7%BD%B2%E5%90%8D%E3%81%8C%E6%96%BD%E3%81%95%E3%82%8C%E3%82%8B%E5%8E%9F%E5%9B%A0%E8%AA%BF%E6%9F%BB-%E3%81%82%E3%82%8B%E3%81%B9%E3%81%8D%E5%A7%BF%E3%81%AE%E8%80%83%E5%AF%9F-1.html
https://tech.pjin.jp/blog/2015/10/06/android%E3%82%A2%E3%83%97%E3%83%AA%E5%85%AC%E9%96%8B%E6%96%B9%E6%B3%95%E3%81%BE%E3%81%A8%E3%82%81%E3%80%80%E3%80%90%E7%AC%AC%E5%9B%9B%E5%9B%9E%E3%80%91%E3%82%A2%E3%83%97%E3%83%AA%E5%85%AC%E9%96%8B/

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12