キーストアとは

Androidのキーストアについて調べたのでメモ。

キーストアとは

キーストアとは「このアプリはこの人が作ったものですよ!」というのを証明するために使われるファイルで、アプリを作成する段階でアプリに埋め込まれるらしい。

俗に言う「デジタル署名」と呼ばれるもの。

Google Playで公開しているアプリをアップデートする場合は、このキーストアが同じアプリでないと同一のアプリとはみなされない。

▲Android StudioならGUIでキーストアがつくれるみたいです。

金庫の中に金庫が入ってるイメージ

キーストアは「金庫をしまうための金庫」みたいなイメージ。

まずキーストアに開けるには、キーストア自体のパスワードが必要。

そして無事キーストアを開けることができたら、今度はキーストアの中にある「どの金庫(エイリアスまたは秘密鍵などとも言う)を開けるか」を選んで、その金庫のパスワードを入力する。

それでやっとデジタル署名情報が取得できる、みたいな仕組みらしい。

 

つまり、キーストアを使うには

  • キーストアファイル
  • キーストアのパスワード
  • エイリアス名(これは選択制)
  • エイリアス名に対応したパスワード

の4つが最低限必要。

キーストア → 1つのアプリ

基本的に個人で複数のアプリを開発する場合は

  • アプリA:キーストアA(エイリアスA)
  • アプリB:キーストアA(エイリアスA)
  • アプリC:キーストアA(エイリアスA)

という感じで1つのキーストアと1つのエイリアスを使い回すのが普通らしいけど

のちのちアプリを譲渡したりするかもしれない場合は、アプリごとにキーストアを作っておいて、キーストアごと譲渡したりするケースもあるらしい。

キーストア → めちゃ大事

キーストア=めちゃくちゃ重要なファイルなので

絶対になくさないようにしなければいけない。

キーストアはなぜ必要なのか

プログラミング素人のワイ。以下のような疑問が浮かんだ。

そもそもAndroidアプリを配布しようと思ったらGoogle Play経由で配布することになるよね?

 

てことはGoogle Playにアプリをアップしようと思ったらGoogleアカウント(厳密にいうとGoogle Play Console)にログインする必要があるよね?

 

それってつまり、Googleアカウントにログインできるのは本人だけなわけでアップロードできている時点で100%本人がアップロードしたアプリという担保が取れるわけだから、キーストアとかいう仕組みいらなくね?

 

この疑問について調べたところ、以下のような記述を見つけた。

また、Playストアのような公の場にアプリを公開せず、自身のウェブサイトなどで直接apkファイルを公開するような形でアプリを配布する場合、ダウンロードした人はapkファイルから署名内容を確認することができます。それによって、サイトが乗っ取られて改ざんされたapkファイルが公開されているわけではない、という確認にはなるんじゃないですかね。そこまでする人もなかなかいないと思うけど。

引用:Android – Androidアプリの署名について|teratail

 

あーたしかに自分で配布するという手もあるのか。

たしかフォートナイトとかいうアプリも「Googleに手数料を取られるのがイヤだから」とかいう理由で、自社のウェブサイトで配布したりしてますよね↓。

参考:Android版『Fortnite』、Google Playを利用せず独自配信を発表。「30%の手数料が高すぎるから」 – Engadget 日本版

 

あと(これは自分の予想だけど)、アプリをアップデートされたAndroid端末側も「すでにインストールされているアプリと同一のものか」を判断するのにAppliction ID以外にキーストアも使ってたりするんじゃなかろうか。

コメント

タイトルとURLをコピーしました