🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

1739閲覧

Androidアプリの署名について

sena14

総合スコア109

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1グッド

1クリップ

投稿2018/05/09 13:23

参考サイト内の解釈の仕方について

以前作ったkeyファイルを使う、もしくは全く同じ内容のkey(同じ内容の署名でも別のものとして扱われる?)を作ってビルドすれば新しく作ったプロジェクトでもバージョン管理ができるという認識で大丈夫ですか?その際パッケージ名は同一にしてプロジェクトを作らないといけませんか?

またリンク内の署名に関する考慮事項において
アプリのアップグレード: アプリのアップデートがインストールされる際に、新しいバージョンの証明書と既存のバージョンの証明書が比較されます。証明書が一致するとアップデートが許可されます。異なる証明書を使用して新しいバージョンに署名する場合は、異なるパッケージ名をアプリに割り当てる必要があります。この場合、ユーザーは新しいバージョンを完全に新しいアプリとしてインストールします。
とありますが、これは更新ではなく全く新しく公開するといったことなのでしょうか?

教えていただきたい点については
1、Keyの内容を同じにすれば新しく作成しても同じ署名として扱われるのか
2、パッケージ名は同一にする必要があるのか
3、異なる署名、パッケージ名で更新という形をとることが可能なのか
です。

よろしくお願いします。

yonn👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

  1. Keyの内容を同じにすれば新しく作成しても同じ署名として扱われるのか

同じ内容のキーストアを作ることはできません。keytoolコマンドで全く同じ内容を打ち込んでキーストアを作成したとしても、それらは「同一のもの」にはならないようになっています(詳しい説明は省きますが)。それで同一のものが作成できてしまったら、セキュリティ上意味がありませんよね。ですから、アプリに署名するのに使ったキーストアは厳重に管理して、決して失くしてはいけないということです。

  1. パッケージ名は同一にする必要があるのか

Androidではパッケージ名でアプリを管理しているので、異なるアプリは異なるパッケージ名にする必要があります。むしろ同一にしてはいけません。異なるパッケージ名で作成した複数のアプリを同一のキーストアで署名することは問題ありませんし、そうすることでそれら複数のアプリが同一作者であることを証明することができます。これはPlayストアにアプリを公開するのに重要なことです。(2018/05/10 15:16 取り消し線を引く)

  1. 異なる署名、パッケージ名で更新という形をとることが可能なのか

翻訳の問題からか確かになんか変なことが書いてありますが、これは「同一アプリとして更新するなら、署名も前バージョンと同一でなければインストールできないよ」ということを強調しているだけです。

「アプリのプログラムコードは内容は全く同一、パッケージ名も同一だけど、キーストアを失くしてしまったから、別のキーストアを使って署名しよう」ということを強行して作られたapkファイルを端末にインストールしようとしても、それは更新とは見なされず端末にインストールすることはできません。そんな状況でもそのアプリをどうしても端末にインストールしたければ、パッケージ名を変えて「別アプリ」としなければできませんということです。まあ、これ自体イレギュラーな話なので、深く考えない方がいいでしょう。兎にも角にも**キーストアは失くすな!**ということを強調するものだと解釈しておけばいいのでは。

投稿2018/05/09 17:16

編集2018/05/10 06:17
keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sena14

2018/05/10 04:07

なるほど。解説ありがとうございます。 1、3についてはすっきりと理解できました。 2についてなのですが一般的には同一のキーストアで署名している場合が多いのでしょうか? 自分が感じているメリットとして管理が楽。デメリットとしてそのキーストアをなくした場合全てのアプリが更新できなくなる。ぐらいに考えているのですが、複数のアプリが同一作者であることを証明することができる。などどのようなことに役立つのでしょうか?また上記の面以外に大きなメリットデメリットなどありますでしょうか? よろしくお願いします。
keicha_hrs

2018/05/10 06:31

まず最初に、先の回答の2の部分で最後の一文に取り消し線を引かせていただきました。Playストアにおいて、1つのアカウントで公開されるアプリが全て同一のキーストアで署名されなければならないといった縛りがあるわけではないので、この一文は誤解を招きかねないものでした。申し訳ありません。 それからコメントについてですが、私も様々な開発者の事例を見て回っているわけではないので、これこそ「一般」と断言できるほどの材料は持ちあわせてはいないのですが、自分で作成したアプリは単一のキーストアで署名するようにするのが普通だとは思います。キーストアを複数所持して使い分けるのは、何より管理が面倒ですからね。 また、Playストアのような公の場にアプリを公開せず、自身のウェブサイトなどで直接apkファイルを公開するような形でアプリを配布する場合、ダウンロードした人はapkファイルから署名内容を確認することができます。それによって、サイトが乗っ取られて改ざんされたapkファイルが公開されているわけではない、という確認にはなるんじゃないですかね。そこまでする人もなかなかいないと思うけど。 まあ、それ以上の大きなメリットデメリットというのは、思いつく限りはないのかなあ?
sena14

2018/05/12 13:41

なるほど。ありがとうございます! 無事理解することができました。次からは単一のキーで公開していこうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問