Phonegap 3.x CLIでAndroidリリースAPKをビルドする


108

Phonegap 3.x CLIを使用してローカルでAndroidアプリをビルドし、リリースの準備をするにはどうすればよいですか?プロジェクトのplatform / androidディレクトリ内に生成されたbinフォルダーを確認します。.debugAPKしかありません。

ちなみに、私はこのコマンドを使用します: phonegap local build android

回答:


153

これはPhonegap 3.0.xから3.3.xの場合です。PhoneGap 3.4.0以降については、以下を参照してください。

Phonegapのドキュメントで、回答の一部がここに見つかりました。完全なプロセスは次のとおりです。

  1. コマンドラインウィンドウを開き、/ path / to / your / project / platforms / android / cordovaに移動します。

  2. を実行しますbuild --release。これにより、署名なしのリリースAPKが/ path / to / your / project / platforms / android / binフォルダーに作成され、YourAppName-release-unsigned.apkと呼ばれます。

  3. Android開発者公式ドキュメントの指示に従ってAPKに署名し、調整します。

リンクを提供してくれた@LaurieClarkに感謝します(http://iphonedevlog.wordpress.com/2013/08/16/using-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and- android-projects /)、そしてそれを投稿したブロガー。


9
変更する<application android:debuggable="true"...必要があるAndroidManifest.xmlファイルを手動で変更する必要がありました<application android:debuggable="false"
Ian Jamieson 14

3
zipalign -v 4 your-unaligned.apk your-aligned.apk
Damian

13
Cordova 3.4.1-0.1.0を実行していて、ファイルが作成されました/path/to/your/project/platforms/android/ant-build
AlexStack '31年

1
具体的には、これはPhonegap 3.0.xから3.3.xへの3.4.xからのものであり、これより前とは異なる場合があります。
ギジェルモ・グティエレス2014年

ギジェルモありがとうございました。+1
Quick_Silver 2015

112

PhoneGap 3.4.0では、以下を呼び出すことができます。

cordova build android --release

「ant.properties」ファイルを「platforms / android」ディレクトリに次のように設定した場合:

key.store=/Path/to/KeyStore/myapp-release-key.keystore
key.alias=myapp

次に、キーストアのパスワードの入力を求められます。出力ファイル(myapp-release.apk)は、すでに署名および調整されており、展開の準備ができている 'platforms / android / ant-build'ディレクトリに保存されます。


1
Cordovaの現在の3.4.0リリースには、「ant-properties」ファイルが含まれていません。
SteAp 2014年

8
で作成ant.propertiesplatforms/android、これら2つのプロパティをドロップしました。完璧に動作します、ありがとう!
Adam Tuttle

6
キーストア/エイリアスまたはそれらの作成方法がわからない場合は、developer.android.com
signing.html

6
また、このファイルでkey.store.passwordおよびkey.alias.passwordプロパティを指定できるため、リリースをビルドするたびに入力する必要がないことに注意してください。もちろん注意が必要で、このファイルをバージョンシステムにコミットしないでください。
vbezhenar 2014

5
cordova 5.0.0以降の場合、プロジェクトのルートにbuild.jsonを作成し、{"android":{"release":{"keystore": "/path/to/your.keystore"、 "alias ":" youalias "}}} ant.propertiesファイルの代わりに。FYI cordova.apache.org/docs/en/edge/...
artberri

19

コルドバ6.2.0で

cd cordova/ #change to root cordova folder
platforms/android/cordova/clean #clean if you want
cordova build android --release -- --keystore="/path/to/keystore" --storePassword=password --alias=alias_name #password will be prompted if you have any

以前の答え:

コルドバ5.0.0によると

{
     "android": {
         "release": {
             "keystore": "app-release-key.keystore",
             "alias": "alias_name"
         }
     }
 }

そして./build --release --buildConfig build.json、ディレクトリから実行しますplatforms/android/cordova/

キーストアファイルの場所はを基準にしているplatforms/android/cordova/ため、上記の構成.keystoreファイルでbuild.jsonは同じディレクトリにあります。

keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000


15

@ steven-andersonまでフォローすると、ant.properties内でパスワードを設定することもできるため、プロセスを完全に自動化できます

したがって、platform \ android \ ant.propertiesに次のように入力した場合

key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword

1
Windowsではスラッシュをエスケープする必要があります... '... key.store = C:\\ OpenSSL-Win32 \\ certs \\ android_key_store.keystore ...'
bkomac

4

同じ問題が発生したため、多くのことを疑問に思いましたが、私のインストールでは「cordova」コマンドが使用できず、「phone gap build android --release」はplatform / android / ant.propertiesを無視しました。

プラットフォームフィルターの内側を見ると、「cordova」という名前のフォルダーが見つかり、その中に--release引数を受け入れる「ビルド」バイナリーがあり、キーチェーンを要求して、署名してプロダクションの準備ができました。 APK。

これは電話ギャップサイトのどの部分にも記載されていなかったので、率直に言って、私は電話ギャップがちょっと嫌いです:(


2

Google Playストアに展開するためのPhoneGap Androidアプリの構築

これらの手順は、Cordova、PhoneGapまたはIonicで機能します。唯一の違いは、が呼び出される場所がどこであっても、またはcordovaに置き換えることです。phonegapionic、特定のシナリオでにです。

開発が完了し、展開の準備ができたら、次の手順に従います。

  1. コマンドラインウィンドウを開きます(macOSおよびLinuxではターミナル、Windowsではコマンドプロンプト)。

  2. / path / to / your / project /に移動します。これをプロジェクトルートと呼びます。

  3. プロジェクトのルートで、プラグインのセットから「コンソール」プラグインを削除します。

    コマンドは次のとおりです。cordova plugin rm cordova-plugin-console

  4. プロジェクトルートにいる間に、cordovaビルドコマンドを使用してリリース配布用のAPKを作成します。

    コマンドは次のとおりです。cordova build --release android

  5. 上記のプロセスはandroid-release-unsigned.apk、フォルダー内に呼び出されるファイルを作成しますProjectRoot/platforms/android/build/outputs/apk/

  6. https://developer.android.com/studio/publish/app-signing.html#signing-manuallyの手順を使用してAPKに署名して調整します

    。このステップの最後に、取得したAPKをPlayストアにアップロードできます。 。

注:初心者または初心者の場合、最後のステップは、私にとっては少しわかりにくいかもしれません。いくつかの問題に遭遇し、これらのコマンドが何であるか、およびそれらをどこに見つけるかについていくつかの質問があるかもしれません。

Q1。jarsignerkeytoolとは何ですか?回答
Androidアプリ署名の手順では、jarsignerkeytoolのすべてについて具体的に説明していますが、コマンドラインウィンドウで「コマンドが見つかりません」というエラーが発生した場合の場所はわかりません。

したがって、Java開発キット(JDK)をPATH変数に追加した場合、ガイドのようにコマンドを実行するだけで機能します。ただし、PATHに含まれていない場合は、JDKインストールのbinフォルダーからいつでもアクセスできます。

Q2。zipalignはどこにありますか?
回答:見つけられないために高い確率があるzipalignコマンドをし、「コマンドが見つからないエラー」が。あなたはおそらくジップアラインをググって、どこでそれを見つけるのでしょう?zipalignユーティリティは、Android SDKのインストールフォルダ内に存在します。macOSでは、デフォルトの場所はです。フォルダに頭の上場合は、のような他のフォルダの束見つけるだろう、、、、... [開く]フォルダを。。ここには、Android SDK Managerで使用しているビルドツールチェーンに応じてバージョン管理されたいくつかのフォルダーがあります。ZipAlign

user-name/Library/Android/sdk/docsplatform-toolsbuild-toolstoolsadd-ons

build-toolscd build-toolsこれらの各フォルダで使用できます。個人的には最新バージョンのフォルダを探しに行きます。Anyを開きます。

macOSまたはLinuxでは、ドキュメントに記載./zipalignzipalignれているように単に入力するのではなく、使用する必要がある場合があります。Windowsではzipalign十分です。


1

私はこれをzipalignと同じディレクトリに署名済みアプリをコピーして貼り付けることで機能させました。パスを指定しても、aapt.exeがソースファイルを見つけられなかったようです。つまり、これは機能しませんでした。 「aapt.exeCordovaApp-release-unsigned.apk」は、内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。そして、これはzipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apkを実行しました


先端をありがとう。PATH環境変数にzipalignのフォルダーへのパスを含めることもできます。
GuillermoGutiérrez2015年

0

私はこの質問がPhonegap 3.Xについて具体的に尋ねていることを知っていますが、参考までに、4.0.0より上のバージョンのPhonegapは、デフォルトでは、AntではなくGradleを使用してビルドします。Gradleの代わりにAntを使用するには、これをconfig.xmlに追加できます。

<preference name="android-build-tool" value="ant" />

Gradleを使用する場合、キーストアの署名情報を新しい場所に移動する必要があります(この投稿で概説しています)。「と呼ばれる新しいファイルを作成しますrelease-signing.properties以下の内容を内部「build.gradle」ファイルとプットと同じフォルダには」

storeFile=..\\..\\some-keystore.keystore
storeType=jks
keyAlias=some-key
// if you don't want to enter the password at every build, you can store it with this
keyPassword=your-key-password
storePassword=your-store-password

-7

あなたはこのコマンドを試すことができます、それはアプリをビルドして実行するはずです(したがって.apkが作成されるべきです):

phonegap local run android


3
それでも、デバッグAPKのみが作成されます。
ギジェルモ・グティエレス

2
いいえ、それはリリースAPKではなく、デバッグ署名済みAPKを作成するだけです。
ギジェルモ・グティエレス

1
ここに解決策を見つけた(3/4方法ダウン:「Googleはアップロードを再生するためのFinalize APK」):iphonedevlog.wordpress.com/2013/08/16/...
ローリー・クラーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.