web-dev-qa-db-ja.com

Phonegap 3.x CLIでAndroidリリースapkを構築

リリース予定のPhonegap 3.x CLIを使用してローカルでAndroidアプリを作成する方法を教えてください。プロジェクトのplatform/Androidディレクトリ内に生成されたbinフォルダを確認し、.debug APKしかありません。

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

108

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

Phonegapのドキュメントで、答えの一部 こちら を見つけました。完全なプロセスは次のとおりです。

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

  2. build --releaseを実行してください。これにより、/ path/to/your/project /platform/Android/binフォルダーに、YourAppName-release-unsigned.apkという名前の無署名のリリース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 / )、それを投稿したブロガー。

152

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

cordova build Android --release

次のように、「platform/Android」ディレクトリに「ant.properties」ファイルを設定したとします。

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

その後、キーストアのパスワードを入力するように求められ、出力ファイル(myapp-release.apk)はすでに署名されて配置され、デプロイの準備が整った 'platform/Android/ant-build'ディレクトリに入ります。

112
Steven Anderson

コルドバ6.2.

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 fileとbuild.jsonは同じディレクトリにあります。

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

19
KrIsHnA

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

そのため、platform\Android\ant.propertiesに入れると、次のようになります。

key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword
15
Simone Avogadro

私は同じ問題を抱えていたので私は同じコードを持っていたので多くのことを考えていましたが、 "cordova"コマンドは決して利用できず、 "phone gap build Android --release"はplatform/Android/ant.propertiesを無視しました。

それで私のプラットフォームフィルタの中を見て、私は "cordova"という名前のフォルダを見つけました、そしてその中に--release引数を受け入れる "build"バイナリがありました、それはキーチェーンを私に頼みました。 APK.

これは電話のギャップのサイトのどの部分にも文書化されておらず、率直に言って私はちょっとphonegapを嫌いです:(それは物事を容易にすることになっていましたが、すべてがただ複雑でした:(

4
Freaktor

Google PlayストアにデプロイするためのPhoneGap Androidアプリの構築

これらの手順は、Cordova、PhoneGap、またはIonicに有効です。唯一の違いは、あなたの特定のシナリオでは、cordovaへの呼び出しがどこにあっても、それをphonegapまたはionicに置き換えることです。

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

  1. コマンドラインウィンドウを開きます(macOSおよびLinuxの場合はTerminal _Windowsの場合は[OR Command Prompt])。

  2. / path/to/your/project /に進んでください。これをプロジェクトルートと呼びます。

  3. プロジェクトルートにいる間に、あなたのプラグインのセットから "Console"プラグインを削除してください。

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

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

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

  5. 上記のプロセスにより、フォルダAndroid-release-unsigned.apkProjectRoot/platforms/Android/build/outputs/apk/というファイルが作成されます。

  6. に署名してAPKに署名して調整してください https://developer.Android.com/studio/publish/app-signing.html#signing-manually

    このステップの最後にあなたが手に入れたAPKをPlayストアにアップロードすることができます。

注意:初心者または初心者として、最後のステップは私にとってはやや混乱を招くかもしれません。いくつかの問題に遭遇するかもしれず、これらのコマンドが何であるか、そしてどこでそれらを見つけるべきかに関していくつかの質問があるかもしれません。

Q1 jarsigner および keytool とは何ですか?
Ans:Android App Signingの指示では、jarsignerおよびkeytoolがすべて何についてであるかを具体的に説明していますただし、コマンドラインウィンドウで「コマンドが見つかりません」というエラーが表示された場合は、それらを見つける場所がわかりません。

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

Q2。 zipalign はどこにありますか
Ans:zipalignコマンドが見つからず、「command not foundエラー」が表示される可能性が高いです。あなたはおそらくグーグルzipalignとそれを見つけるためにどこにいますか?

zipalignユーティリティは、Android SDKインストールフォルダ内にあります。 macOSでは、デフォルトの場所はuser-name/Library/Android/sdk/です。フォルダに移動すると、docsplatform-toolsbuild-toolstoolsadd-ons..のような他のフォルダがたくさん見つかります。

build-toolsフォルダを開きます。 cd build-tools。ここには、Android SDK Managerで使用しているビルドツールチェーンに従ってバージョン管理されているフォルダーがいくつかあります。ZipAlignはこれらの各フォルダにあります。私は個人的には最新バージョンのあるフォルダを探しに行きます。どれでも開きます。

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

1
incorelabs

署名されたアプリをzipalignと同じディレクトリにコピーペーストすることで動作するようになりました。パスを指定しても、aapt.exeがソースファイルを見つけられなかったようです。すなわち、これはうまくいきませんでしたzipalign -f -v 4 C:...\CordovaApp-release-unsigned.apk C:...\destination.apk aapt.exeCordovaApp-release-unsigned.apkに達し、フリーズしてリターンキーを押した'aapt.exeCordovaApp-release-unsigned.apk'は、内部または外部のコマンド、操作可能プログラムまたはバッチファイルとして認識されていません。そしてこれはzipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apkをしました

1
robert deveau

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

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

Gradleを使用するとき、キーストアの署名情報は新しい場所に移動する必要があります( この記事で概説したように )。 「build.gradle」ファイルと同じフォルダに「release-signing.properties」という名前の新しいファイルを作成し、次の内容を配置します。

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
0
Julian