Androidプログラミング~ Appへの直接の署名からGoogle Play App Signingへ変更した時のメモ書き
今更ながらって感じの情報ですが、Google Play App Signingの設定を行った際の、個人的なメモ書きです。
今までは、keystore(Appへの署名鍵、ファイルで複数Appの鍵を保存可能)を自身で保存して、App(アプリ)毎に署名してアップロードしてしたのですが、Google Play App Signingという方式に変更になり、旧来の方法ではGoogle Playにアップロード出来なくなっています。



こちらがGoogle、Android Developerの公式ページのリンク⇒ Google Play App Signingの概要。
これ以外にも長々と書かれてるけど、結局は上のキャプチャの「Google Play App Signingを使用する」の項目だけ読めば事足りるので、1からアプリをアップする場合は手順に従えばいいだけです。
旧来の方法で公開したApp(アプリ)を更新し、アップロード&公開する場合のみ、3通りある方法でGoogle Play App Signingへ移行(有効化)する必要があります。
今回は下記の手順で、Google Play App Signingを有効化し、Appをアップロード&公開しました。
※ このGoogle Play App Signingを使う(というか変わったのでそうせざるを得ない)利点は、リリース用の鍵をGoogleに預けるので、自身でファイルを管理する必要がなく、紛失して更新が出来なくなる事を防げる事です。
Google Play App Signingへ移行(有効化)する
ここからは、Google Play App Signingへ移行(有効化)した際の、具体的な手順のメモ書きです。

「Google Playによるアプリ署名への登録」のページをスクロールすると、上図が出てきます。
キャプチャの通り、「Google Playによるアプリ署名への登録」のページをスクロールすると、上図が出てきます。
今回は3つある方法のうち、2番目の「下記のコマンドを使ってツールを実行し~」という方法を採りました。
下記は、大まかな手順です。
- pepk.jarというファイルをダウンロード
- キャプチャに記載されているコマンドで、鍵をエクスポート&暗号化したファイルを作成
- アプリ署名の秘密鍵をGoogle Play Consoleへアップロード
コマンドラインで秘密鍵をエクスポート&暗号化(PowerShell&Linuxのターミナル)
まず、ダウンロードしたpepk.jarと、Keystore(今回はTomatoJuice.jks)の2つのファイルをデスクトップに置いて試してみました。

Google Play App Signinを有効化する2番目の方法の場所に記載されているコマンドをコピーし、テキストエディタに張り付ける。
$ java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=encrypted_private_key_path --encryptionkey=abc~(自身のGoogle Play Consoleの文字列)
各引数の意味とサンプルは次の通り。
outputだけ、ファイル名(+拡張子、なくても出力は出来る)も指定しないとエラーになるので、要注意!
$ java -jar pepk.jar(pepk.jarのエイリアスを指定)
--keystore=TomatoJuice.jks(アップロード鍵のファイルを指定)
--alias=vocalowatchfaces(アップロード鍵のエイリアスを指定)
--output=vocalowatchfaces.pem(証明書の出力先&出力名+拡張子を指定。出力先だけではエラーになる!)
--encryptionkey=abc~~(Google Play Consoleの文字列をそのまま入力)
ダウンロードした「pepk.jar」と、Keystoreファイル「TomatoJuice.jks」がデスクトップにあり、PowerShell(or コマンドプロンプト)もデスクトップに移動済みの場合は、下記のようにコマンドを入力すれば簡単にエクスポート出来ました。
java -jar pepk.jar --keystore=TomatoJuice.jks --alias=vocalowatchfaces --output=vocalowatchfaces.pem --encryptionkey=abc~(Google Play Consoleの文字列)


引数、パスワード等に間違いがなければファイルが出力されます!


絶対パスで秘密鍵をエクスポート&暗号化
下記は、絶対パスでWindowsのPowerShell(or コマンドプロンプト)と、Linuxのターミナルから絶対パスで秘密鍵をエクスポート&暗号化した場合のメモ書きです。
初歩的な内容なのですが、念のためにメモ書きしてます。
※ pepk.jarとjksファイルがDドライブのProgramming(つまり、D:\Documents\Programming)内にある場合。

WindowsのPowerShell(or コマンドプロンプト)で、絶対パス指定で出力した場合
WindowsのPowerShell (or コマンドプロンプト)で絶対パス指定して出力した場合の参考例。
java -jar D:\Documents\Programming\pepk.jar --keystore=D:\Documents\Programming\TomatoJuice.jks --alias=vocalowatchfaces --output=D:\Documents\Programming\vocalowatchfaces.pem --encryptionkey=abc~(Google Play Consoleの文字列)

(Linuxの基本ですが、/はホーム、その下のmntにC・D~ドライブがある)
Windows上で動くLinuxのターミナルの場合の参考例。
java -jar /mnt/d/Documents/Programming/pepk.jar --keystore=/mnt/d/Documents/Programming/TomatoJuice.jks --alias=vocalowatchfaces --output=/mnt/d/Documents/Programming/vocalowatchfaces.pem --encryptionkey=abc~(Google Play Consoleの文字列)

アプリ署名の秘密鍵をアップロード
暗号化されたアプリ署名の秘密鍵をアップロードすると、Google Playによるアプリ署名への登録を推奨する画面から、Google Play App Signingが有効です、と記載された下記のキャプチャの画面に変わります。

Google Playによるアプリ署名への登録を推奨する画面から、Google Play App Signingが有効になった画面に変わる。

以前自作した、Miku Watch FaceのSDKを更新してアップロードし、無事にアップロード出来ました。
他にも作ったアプリあるけど、とりあえず後日、ウォッチフェイスのデザイン変更&種類を増やそうかなと思いますw
ただこれだけのメモブログですが、参考になれば幸いです♪
でゎでゎ!
おまけ@次買うスマホ、AXON M(docomoのM Z-01Kの海外版)について
ところで、先日Xperia X Compactが充電出来きないという症状が出たので、
- 充電器を複数変更。
- ケーブルを3つ変更。
- 複数の場所で充電を試みる。
という方法を試して見たのですが、やはり充電しないので、分解して組み立て直してみたりもしたのですが、batteryではなく、基盤がお亡くなりになってるようで復活ならず、結果、メーカー問わずスマホを回収しているdocomoショップで引き取ってもらい、その短い生涯を終えましたw

動画にも撮ったけど面白くないので没にしましたw

まぁ故障した原因は恐らく「熱」だと思う。
このXperiaは(この機種だけじゃないようだけど・・)とにかく発熱がすごく、PUBGプレイしたり、カメラで動画撮影しただけでホッカイロ並みに温かくなり、動作停止してしまうのです。
そこで、新しいスマホを買う必要に迫られ、結果、以前使って気に入っていた2画面スマホ、MEDIAS W N-05Eの後継、ZTEのM Z-01KのSIMフリー版、AXON Mを買う事にしたのです!

docomoのM Z-01Kとほぼ同じだけど、こちらはNFCがついている。
えぇ、例の報道がある直前にすでにebayで購入しましたよ。
いや、報道があってもこの機種を買う気でしたけどね。
出た直後は高いし買えなかったけど、ふと調べてみたらAXON Mが3万円程度で新品が買える事が分かったので、迷わず買いました。(もう在庫あまりないようです)
あと、報道にある情報漏洩の件は、そもそも各プロバイダー、通信会社、OSを使ってる時点で、個人情報や位置情報等は提供し続けているものだと思ってるし、中国ではよくLenovo使ってたし、そもそも中国にいた時点でもう個人情報提供(漏洩というか提供だw)は義務みたいな感じで気にしてないのです。
※ もちろん自分の機種を踏み台にサイバー攻撃をされる可能性はあるけど、仮に受けた場合、企業でさえほぼ防ぎようがない次元、レヴェルにまで昇華してるので、どうしようもないんですけどね・・。
あと、蛇足ですが、ZTEはアフリカのエチオピアで携帯電話の通信設備をあっという間に構築した、すごい国営企業で、華為よりも明らかに格上の企業です。
NHKのドキュメンタリーがまだ残ってたので、そのリンクと中国の腾讯動画のリンク張っときますねw
※腾讯はQQやWechat、あと荒野行動も作ってる、中国に関わってる人なら誰でも知っている超有名な会社です。
NHK纪录片中国力量2、驰骋非洲的巨龙(NHKドキュメンタリー、チャイナパワー2、アフリカをかける巨竜)、の動画
YoutubeのNHK纪录片中国力量2、驰骋非洲的巨龙(NHKドキュメンタリー、チャイナパワー2、アフリカをかける巨竜)
腾讯视频のNHK纪录片中国力量2、驰骋非洲的巨龙(NHKドキュメンタリー、チャイナパワー2、アフリカをかける巨竜)
MEDIAS W N-05Eは上海で仕事をしていた時、2014年頃に使ってたけど、2画面はとにかく便利だったので、後継機は欲しかったのです。
まぁ届くのは12月下旬~1月初旬なのですけどね!( ;∀;)
でゎでゎ!
