Android 電子署名1
Android用アプリケーションを公開するには電子署名をする必要がある。
詳細は、http://code.google.com/android/devel/sign-publish.htmlに記載されているが、簡単にまとめてみた。
- アプリケーションにデジタル署名をする必要がある
- 署名されていないアプリケーションは、エミュレータでも実機でも、インストール及び実行不可能
- デジタル署名を行う証明書は、自己証明書(オレオレ証明書)で良い 認証局は必要ない
- デバック実行時には、ADTが自動的にデバック用の署名を行っているのでエミュレータでの実行が可能となっている。
- 証明書の有効期間は、インストール時だけに使用される。インストール後に有効期間が切れても、アプリケーションは動作可能
- 標準的なJAVAのツールである、Keytool,Jarsignerでキーを作成しapkファイルに署名をする
自己証明書ではあるが、同一の証明書を持つ複数のアプリケーションがあった場合、同じ作成者が作成した物である事は証明できるため、以下の事項で証明書は利用されている。
- バージョンアップ時にチェックをする
- 同じ証明書を持つアプリケーションは、同一プロセスでの実効が可能
- 証明書をベースとしたPermission設計ができ、dataやcodeの共有が可能
ちなみに署名されてないソフトをエミュレータにインストールすると以下のようなメッセージが表示されてインストールができない。
ADT Plugin for EclipseとAnt build toolは、デバックモードとリリースモードの2つのモードで事なった署名方法を行う
デバックモード
JDKのツールで、keystore/keyを作成
以下の、keystoneとpasswordを使用する。
* Keystore name ― "debug.keystore"* Keystore password ― "android"* Key alias ― "androiddebugkey"* Key password ― "android"* CN ― "CN=Android Debug,O=Android,C=US"
もちろんこのままの値で公開してはいけない。
上記の値は変更する事はないと思うが、Windows > Prefs > Android > Build.で変更可能
この証明書は365日の有効期限となっているため、ADTをインストールしてから365日たつと以下のようなエラーが表示される。
debug:[echo] Packaging bin/samples-debug.apk, and signing it with a debug key...[exec] Debug Certificate expired on 8/4/08 3:43 PM
この時は、Windows > Prefs > Android > Buildに設定されているdebug.keystoreファイルを削除して、再buildを行うとまた、365日デバックビルドが使用可能となる。
リリースモード
リリースモードでは署名されない.apkファイルが作成される。
作成の仕方
1.プロジェクト右クリック->Android Tools ->Export Application Package.
2.アプリケーションのマニュフェストファイル(AndroidManifest.xml)を開き、「Export unsigned apk」を選択
上記で作成した、.apkファイルに対して、Keytool,Jarsigner,等を使用して署名をしていく。
注意事項)Android Marketでソフトを公開する場合は、証明書の有効期限を2003年10月22日以降にしておかなければいけない。
コメント
コメントを投稿