apk ファイル作成と署名

apk ファイル作成と署名

電子証明書を keytool コマンドで作成したので
今回は apk ファイルを作成

プロジェクトを右クリック

Android Tools > Export Signed Application Packages
を選択
これでできると思ったけど
Exoirt Abirted
とエラーがでてしまう

apk

エラーメッセージは
Export aborted bacause fatal lint erros were found
These are listed in the lint View
Elther fix these befre running Export again or turn off Run full erroor check when exporting app
in the Android > Lint Effor Checking preference page

ここででてくる Lint はソースコードの静的解析

これはセキュリティ
パフォーマンス
ユーザビリティ
アクセシビリティ
国際化などのチェック項目に引っかかっている
ということ

この場合の対処方法は
ソースコードの修正
もしくは Lint のチェック項目の緩和となる

まずはソースコードを修正しようとしたけど
エラーのでているのが
/res/values/strings.xml

<string name="app_name">PhotoNavi</string>

さすがにアプリ名でエラーは理解できなかったため
Lint app_name
で検索

Android Lintでエラーがでる

を参考にしてみたところ
ライブラリの言語リソース設定が
それを利用しているアプリの
リソース設定にまで影響してくる
とのことです

このため
Lint のチェック項目緩和の手段をとることに

設定するのは
Missingtranslation を無視するようにすること

プロジェクトを右クリックし
Properties を選択

Android Lint Preference を選択し
missingt
まで入力して
MissingTranslation の項目を検索

設定値を Fatalから Warning に変更し
applyをクリック

apk3

これで変更するとエラーがなくなり次にすすめるように

もう一回
プロジェクトを右クリックして
Android Tools > Export Signed Application Packages
を選択

するとapk ファイルにするプロジェクト名がでるので
Next をクリック

apk4

次に keystore ファイルを指定する
すでに作成済みなら
use existing keystore にチェック
Browse で場所を指定

Password には keystore ファイルのパスワードを入力する

apk5

次にAlias とパスワードを設定
これも同じパスワードになる

次の画面では
appk ファイルの保存先を指定する
Destination APK file
の横へ保存場所とファイル名を入力
拡張子は
.apk
になる

これは Browse ボタンで保存場所を開くだけでよい

場所が決まったら finish をクリックすると
apk ファイルが作成される

作成された apk ファイルに署名ができているか
調べるには jarsigner コマンドを使う

jarsigner -verify -verbose -certs PhotoNavi.apk 

というように
jarsigner -verify -verbose -certs apkファイルのパス
で実行すると署名されているなら
その署名内容が表示される

Android ランチャーアイコン作成

Android ランチャーアイコン作成

Android Icon Set – お手軽なアイコン作成
http://papakingyo-android.blogspot.jp/2013/08/android-icon-set.html?m=1
を参考に
ランチャーアイコンの作成

まずは Eclipse を起動

アイコンを変更したいプロジェクトを右クリックし
New > Other

ダイアログがでてくるので
Android Icon set
を選択し Next をクリック

icon

すると、どのアイコンを作成するのか選択する画面になるので
Lancher icons をクリックし
ファイル名を変えたいのなら
Icon Name

ic_lancher から変更する
そのままでよいなら Next をクリック

icon2

次に、どのようなアイコンにするか選択する画面がでてくる

最初はテキストタイプのアイコンになる

Background color で背景色の設定
Foreground color でも辞職の設定
Text にはアイコンに使う文字を設定

現在の状態だと
赤い背景に黒文字で aA
とかかれたアイコンができる

icon3

なお Foreground が現在 Text になっているので
テキストアイコンだけど
Image をクリックすれば
自分で用意した画像を使用することも可能
自作が面倒な場合は外注したりするという方法もありです

Browze で画像を検索

Shape は、アイコンの枠をどうするかを指定します

None なら枠はなし
Square なら四角
Circle なら円となります

icon4

アイコンについては
フリー素材で商用可能なものもあるので
それらをダウンロードカスタマイズするという方法もあります

Android アイコン 商用 フリー
で検索したら
2014年、無料で商用利用できる最新フリーアイコン素材のまとめ

というものもありました

そして最後にクリップアートを使う場合

これは Android SDK で用意されてる
クリップアートを使います

Clipart を選択し
選択します

Background Color ではクリップアートの背景色
Foreground Color でクリップアートの色を設定

icon6

変更が完了したら Finish を選択
これで
アイコンを置き換えてもよいか聞かれるので
yes all ですべて置き換えます

icon7

これでアプリのアイコンが変更されます

次回は apkファイルの作成と電子署名になります

Android アプリ名の修正

公開のためにソースを編集していたら
アプリ名が消えてしまったので修正

まず
res/values/strings.xml

<string name="app_name">PhotoNavi</string>

を追加

次にAndroid Manifest.xml の
application タグと activity タグへ

android:label="@string/app_name" >

を追加

これでアプリ名に戻った

これを消してしまうと、アプリ名ではなく
パッケージ名が表示されるようになるので注意

androidリリースのための署名の準備

androidリリースのための署名の準備

Android開発で使うコマンド

を参考に

リリースのための署名ファイルを作成

今回、署名は端末から keytoolコマンドで行う

構文は

keytool -genkey -v -keyalg <鍵生成の暗号化方式> -keystore <証明書ファイル名> -alias <証明書別名> -validity <有効期限の日数>

これをもとに

keytool -genkey -v -keyalg RSA -keystore /home/snowpool/snowpool.keystore -alias snowpoolkey -validity 18250

と実行

実行するとパスワードを入力することになる
ただしセキュリティのためか
入力した文字は表示されない

入力後確認のためもう一回入力する

すると姓名を入力することになるので
そのまま入力

組織単位名とか組織名を聞かれるけど
これは個人で開発するので
personal でOK

ここの部分については
Androidアプリへの署名の付け方

を参考にさせていただきました

都市名はそのまま住んでいるところの市町村
州名や地域名は都道府県を入力

単位に該当する2文字の国番号は
日本なら
JP

最後に上記の内容でよいか聞かれるので
yes
を入力

すると鍵パスワードを入力してください
とでるけど
キーストアと同じなので Enter でOK

これで署名ファイルができたので
署名の確認を行う

keytool -list -v -keystore snowpool.keystore

で設定したパスワードを入力すると
詳細をみることができる

なお GoogleMap API key で
この証明書の中のSHA1の値が必要になるけど
-v をつけ忘れると表示されないので注意

ここでSHA1の値を確認したら
Google Developers console へログインし
デバッグ用キーのSHA1の値から
自分の keystore ファイルのSHA1の値に変える

https://console.developers.google.com/project
へアクセスして
過去に自分が作成したAPIキーの編集をする

ここまででkeystore の作成と
API key の変更ができたので
次回はアプリのアイコン作成