Google Playでホストするためにハイブリッドモバイルアプリに署名する方法

したがって、あなたは何日も(そしておそらく夜も)働いていたので、今やあなたの最初のハイブリッドモバイルアプリケーションの準備ができています。 それは非常に安定しており、ほとんどの重大なバグはクローズされています。 小さいままでしたが、完璧主義が悪であることを思い出して、あなたはアプリケーションをレイアウトするという強い意思を決定します。

このための前提条件は、署名されたAPKファイルの存在です。 apkファイルに署名する方法については、この記事から学びます。

小さな余談


私のペットプロジェクトがリリースに近づいたとき、アプリケーションをすばやく簡単に公開する方法に関する情報を探し始めました。 見つかった指示の多くはシンプルに見えました。 アプリケーションを開発したIoniフレームワークの作者の指示を選びました。 すべてが初めてうまくいったわけではなく、いくつかの機能があります。 署名プロセスについてはこの記事で説明しますが、重要な点を強調しています。

ソースデータ


Apache Cordovaを使用してハイブリッドモバイルアプリケーションを開発するために必要なものはすべて揃っていると思います。 インストールする必要があります:


プロジェクトとアプリケーションの名前はlcfを使用します。 必要に応じて、プロジェクトの名前に置き換えます。

行こう


最初に、アプリケーションのリリースビルドを作成する必要があります。 しかしその前に、すべての余分なプラグインが削除されていることを確認しましょう。 たとえば、コンソールにデバッグ情報を表示するプラグインは必要ありません。 削除する:

$ cordova plugin rm cordova-plugin-console 

Android用のリリースビルドを生成するには、 buildコマンドに--releaseフラグを付けて使用します。

 $ cordova build --release android 

このコマンドは、ディレクトリに未署名の APKファイルを作成ます。

 platforms/android/build/outputs/apk 

たとえば、platforms / android / build / outputs / apk / android-release-unsigned.apkのようになります。 次に、このファイルに署名し、 zipalignユーティリティを実行して、Google Play用にファイルを最適化および準備する必要があります。

ファイルに署名するには、証明書が必要です。 JDKに含まれているkeytoolユーティリティを使用して作成します。

 $ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validity 10000 

重要です
-aliasパラメーターの値は覚えておく必要がありますが、書き留めておいたほうがよいでしょう。 上記の例では、lcfと同じです(Loyal Client Freeアプリケーションの名前の最初の文字による)。 ここでは詳細を説明しませんが、興味深い場合はコメントに書き込み、詳細を説明します。

エイリアスはアプリケーションに署名するたびに使用されます。 覚えやすくするために、キーストアファイルの名前をエイリアスとして使用します。次に例を示します。

  -keystore hello-world.keystore -alias hello-world -keystore weather-app.keystore -alias weather-app -keystore todo.keystore -alias todo 

*アップデートのリリースごとにアプリケーションに署名する必要があります

keytoolユーティリティはいくつかの質問をします。 8があります。8があります。事前に、質問とおおよその回答を把握するために、それらはすべてネタバレの下にリストされています。

キーツールの質問と回答のサンプル
1.キーストアパスワードを入力します。
ここで、ファイルのパスワード(少なくとも6文字)を入力する必要があります。 入力したパスワードは安全な場所に記録する必要があります。アプリケーションに署名するたびに必要です。

2.新しいパスワードを再入力します。
パスワードを再入力してください。

3.あなたの名と姓は何ですか?
[不明]: Ivan Petrov
あなたの姓と名。 角括弧内の値はデフォルト値です。

4.組織単位の名前は何ですか?
[不明]: IT
ビジネスユニットの名前。 空白のままにすることができます、私はそれを示します。

5.組織の名前は何ですか?
[不明]:2人の開発者
組織の名前。 可能な場合に示します。

6.市区町村の名前は何ですか?
[不明]: モスクワ
都市名

7.州または県の名前は何ですか?
[不明]: MO
エリア名

8.このユニットの2文字の国コードは何ですか?
[不明]: RU
国コード。 RUを示します。

次に、入力した情報を確認するよう求められます。
CN = Ivan Petrov、OU = IT、O = 2developers、L = Moscow、ST = MO、C = RUは正しいですか?

[いいえ]: y

すべてが正しいことを確認するか、Enterキーを押して再度入力します。

最後に、キーが正常に生成されたことを示すメッセージが表示されます。 秘密鍵のパスワードを設定するように求められます(証明書と同じままにする場合は、Enterキーを押します)。

 Generating 2 048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10 000 days for: CN=Ivan Petrov, OU=IT, O=2developers, L=Moscow, ST=MO, C=RU Enter key password for <lcf> (RETURN if same as keystore password): [Storing lcf.keystore] 

lcf.keystoreファイルは、現在のディレクトリに作成されます。

重要です
作成したファイルは安全な場所に保存する必要があります。 閉じたリポジトリを使用する場合、アプリケーションのソースコードとともにファイルをコミットできます。 一般に、証明書は個別に保管するのが最適です。 証明書を失うと、アプリケーションの更新を発行できなくなります。

2つのステップが残り、配布の準備ができたAPKファイルを受け取ります。 署名に直接進みます。

apkファイルに署名するには、JDKにも含まれているjarsignerユーティリティを使用します

 $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf 

証明書名-keystoreパラメーターの後に指定され、エイリアスはファイル名の後に示されます。

最後に、apkファイルを最適化するために、 zipalignユーティリティを使用します。

 $ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk 

最後のパラメーターは、Google Playにアップロードするファイルの名前です。

重要です。
zipalignユーティリティは、Android SDKツールの一部であり、次の場所にあります。

 /path/to/Android/sdk/build-tools/VERSION/zipalign 


おわりに


これで、Google Playでダウンロードできる配布用のapkファイルが準備できました。 説明を記入し、アプリケーションの評価を決定し、「公開」をクリックしてください。

Source: https://habr.com/ru/post/J324350/


All Articles