출시 할 준비가 된 Phonegap 3.x CLI를 사용하여 로컬에서 Android 앱을 빌드하려면 어떻게해야합니까? 프로젝트의 platform / android 디렉토리 내에 생성 된 bin 폴더를 확인하고 .debug APK 만 있습니다.
그런데 다음 명령을 사용합니다. phonegap local build android
출시 할 준비가 된 Phonegap 3.x CLI를 사용하여 로컬에서 Android 앱을 빌드하려면 어떻게해야합니까? 프로젝트의 platform / android 디렉토리 내에 생성 된 bin 폴더를 확인하고 .debug APK 만 있습니다.
그런데 다음 명령을 사용합니다. phonegap local build android
답변:
이것은 Phonegap 3.0.x에서 3.3.x까지입니다. PhoneGap 3.4.0 이상의 경우 아래를 참조하십시오 .
대답의 찾을 일부 여기 폰갭 문서에서. 전체 프로세스는 다음과 같습니다.
명령 줄 창을 열고 / path / to / your / project / platform / android / cordova로 이동 합니다.
을 실행 build --release
합니다. 그러면 / path / to / your / project / platform / android / bin 폴더에 YourAppName-release-unsigned.apk라는 서명되지 않은 릴리스 APK가 생성 됩니다.
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 / )와 그것을 게시하는 블로거가 나를 트랙에 올려 놓았 기 때문입니다.
/path/to/your/project/platforms/android/ant-build
PhoneGap 3.4.0에서는 다음을 호출 할 수 있습니다.
cordova build android --release
다음과 같이 'platforms / android'디렉토리에 'ant.properties'파일을 설정 한 경우 :
key.store=/Path/to/KeyStore/myapp-release-key.keystore
key.alias=myapp
그런 다음 키 저장소 비밀번호를 입력하라는 메시지가 표시되고 출력 파일 (myapp-release.apk)은 이미 서명되고 정렬되어 배포 할 준비가 된 'platforms / android / ant-build'디렉토리에 있습니다.
ant.properties
에서 platforms/android
와 그것으로이 두 가지 속성을 떨어 단지. 완벽하게 작동합니다. 감사합니다!
코르도바 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
이전 답변 :
Cordova 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
@ steven-anderson을 따라 가면 ant.properties 내에서 암호를 구성 할 수도 있으므로 프로세스가 완전히 자동화 될 수 있습니다.
따라서 platform \ android \ ant.properties에 다음을 넣으면
key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword
동일한 문제가 발생했기 때문에 많은 궁금증이 있었지만 설치에서 "cordova"명령을 사용할 수 없었고 "phone gap build android --release"는 platform / android / ant.properties를 무시했습니다.
그래서 내 플랫폼 필터 내부를 살펴보면 "cordova"라는 폴더를 찾았고 그 안에 --release 인수를 허용하는 "빌드"바이너리가있었습니다. 키 체인을 요청했고 서명을 받고 프로덕션 준비를 마쳤습니다. APK.
이것은 전화 갭 사이트의 어떤 부분에도 문서화되지 않았으며 솔직히 말하면 나는 phonegap을 조금 싫어합니다 :( 일을 더 쉽게 만들려고했지만 모든 것이 복잡했습니다 :(
Google Play 스토어에 배포 할 PhoneGap Android 앱 빌드
이 단계는 Cordova, PhoneGap 또는 Ionic에서 작동합니다. 유일한 차이점은 호출이있는 곳마다 특정 시나리오에 대해 또는로 cordova
바꾸는 것입니다 .phonegap
ionic
개발을 완료하고 배포 할 준비가되면 다음 단계를 따르세요.
명령 줄 창 (macOS 및 Linux의 터미널 또는 Windows의 명령 프롬프트)을 엽니 다.
프로젝트 루트라고하는 / path / to / your / project /로 이동합니다.
프로젝트 루트에있는 동안 플러그인 세트에서 "콘솔"플러그인을 제거하십시오.
명령은 다음과 같습니다.cordova plugin rm cordova-plugin-console
아직 프로젝트 루트에있는 동안 cordova 빌드 명령을 사용하여 릴리스 배포 용 APK를 만듭니다.
명령은 다음과 같습니다.cordova build --release android
위의 프로세스 android-release-unsigned.apk
는 폴더에 라는 파일을 만듭니다.ProjectRoot/platforms/android/build/outputs/apk/
https://developer.android.com/studio/publish/app-signing.html#signing-manually 의 지침을 사용하여 APK에 서명하고 정렬합니다.
이 단계가 끝나면 다운로드 한 APK를 Play 스토어에 업로드 할 수 있습니다. .
참고 : 초보자 또는 초보자로서 마지막 단계는 저에게 약간 혼란 스러울 수 있습니다. 몇 가지 문제가 발생할 수 있으며 이러한 명령이 무엇이며 어디에서 찾을 수 있는지에 대해 몇 가지 질문이있을 수 있습니다.
Q1. jarsigner 와 keytool 은 무엇입니까 ?
정답 : Android 앱 서명 지침은 jarsigner 및 keytool 이 무엇인지 구체적으로 알려 주지만 명령 줄 창에서 '명령을 찾을 수 없음 오류'가 발생하는 경우 어디서 찾을 수 있는지 알려주지 않습니다.
따라서 PATH 변수에 JDK (Java Development Kit)를 추가 한 경우 가이드에있는 명령을 실행하기 만하면됩니다. 그러나 PATH에없는 경우 언제든지 JDK 설치 의 bin 폴더 에서 액세스 할 수 있습니다 .
Q2. zipalign 은 어디에 있습니까 ? 답변
: zipalign 명령을 찾지 못하고 '명령을 찾을 수 없음 오류'를 수신 할 가능성이 높습니다 . zipalign을 검색 하고 어디에서 찾을 수 있습니까? zipalign을 유틸리티는 안드로이드 SDK 설치 폴더 내에 존재입니다. macOS에서 기본 위치는 입니다. 당신이 폴더로 향할 경우 같은 다른 폴더의 무리 찾을 것 , , , , ...
를 열고 폴더에 있습니다. . 여기에는 Android SDK Manager에서 사용중인 빌드 도구 체인에 따라 버전이 지정된 여러 폴더가 있습니다. ZipAlignuser-name/Library/Android/sdk/
docs
platform-tools
build-tools
tools
add-ons
build-tools
cd build-tools
각 폴더에서 사용할 수 있습니다. 저는 개인적으로 최신 버전이있는 폴더를 찾습니다. 모두 열기.
macOS 또는 Linux 에서는 설명서에 언급 ./zipalign
된 zipalign
대로 단순히 입력 하는 대신 사용해야 할 수 있습니다 . Windows에서는 zipalign
충분합니다.
서명 된 앱을 zipalign과 동일한 디렉토리에 복사하여 붙여 넣어이 작업을 수행했습니다. aapt.exe가 경로를 지정해도 소스 파일을 찾을 수없는 것 같습니다. 즉, 이것은 작동하지 않았습니다. 'aapt.exeCordovaApp-release-unsigned.apk'는 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. 그리고 이것은 zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
이 질문이 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
이 명령을 시도해 볼 수 있습니다. 앱을 빌드하고 실행해야합니다 (따라서 .apk를 만들어야 함).
phonegap local run android
<application android:debuggable="true"...
I가 변경 필요<application android:debuggable="false"