Xây dựng apk phiên bản Android trên Phonegap 3.x CLI


108

Làm cách nào để tạo ứng dụng android cục bộ bằng Phonegap 3.x CLI, đã sẵn sàng để phát hành? Tôi kiểm tra thư mục bin được tạo bên trong thư mục platform / android của dự án và chỉ có các APK .debug.

Nhân tiện, tôi sử dụng lệnh này: phonegap local build android

Câu trả lời:


153

Điều này dành cho Phonegap 3.0.x đến 3.3.x. Đối với PhoneGap 3.4.0 trở lên, hãy xem bên dưới .

Tìm thấy một phần của câu trả lời ở đây , tại tài liệu Phonegap. Quá trình đầy đủ như sau:

  1. Mở cửa sổ dòng lệnh và truy cập / path / to / your / project / platform / android / cordova .

  2. Chạy đi build --release. Thao tác này tạo APK phát hành chưa được ký tại thư mục / path / to / your / project / platform / android / bin , được gọi là YourAppName-release-unsigned.apk.

  3. Ký và căn chỉnh APK bằng cách sử dụng hướng dẫn tại tài liệu chính thức của nhà phát triển android .

Cảm ơn @LaurieClark về liên kết ( http://iphonedevlog.wordpress.com/2013/08/16/using-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and- android-project / ) và blogger đã đăng nó, vì nó đã đưa tôi đi đúng hướng.


9
Tôi đã phải tự sửa đổi tập tin AndroidManifest.xml của tôi, nơi tôi đã <application android:debuggable="true"...tôi cần phải thay đổi để<application android:debuggable="false"
Ian Jamieson

3
Bạn cũng phải zip align điều sau: căn chỉnh nén -v 4 của bạn-unaligned.apk của bạn-aligned.apk
Damian

13
Tôi đang chạy Cordova 3.4.1-0.1.0 và tệp được tạo trong/path/to/your/project/platforms/android/ant-build
AlexStack,

1
Có vẻ như, cụ thể, điều này dành cho phonegap 3.0.x đến 3.3.x, từ 3.4.x trở về trước, điều này có thể thay đổi.
Guillermo Gutiérrez

Cảm ơn bạn rất nhiều guillermo. +1
Quick_Silver

112

Trong PhoneGap 3.4.0, bạn có thể gọi:

cordova build android --release

Nếu bạn đã thiết lập tệp 'ant.properties' trong thư mục 'platform / android' như sau:

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

Sau đó, bạn sẽ được nhắc nhập mật khẩu kho khóa của mình và tệp đầu ra (myapp-release.apk) kết thúc trong thư mục 'platform / android / ant-build' đã được ký và căn chỉnh và sẵn sàng triển khai.


1
Bản phát hành 3.4.0 hiện tại của Cordova không bao gồm tệp 'ant-properties'.
SteAp

8
Đã tạo ant.propertiestrong platforms/androidvà chỉ bỏ hai thuộc tính này vào đó. Hoạt động hoàn hảo, cảm ơn!
Adam Tuttle

6
Nếu bạn không chắc về kho khóa / bí danh hoặc cách tạo chúng, thông tin chi tiết đầy đủ có tại developer.android.com/tools/publishing/app-signs.html
Shai

6
Cũng lưu ý rằng bạn có thể chỉ định thuộc tính key.store.password và key.alias.password trong tệp này, vì vậy bạn sẽ không phải nhập nó mỗi khi tạo bản phát hành. Tất nhiên, hãy thận trọng và không đưa tệp này vào hệ thống phiên bản.
vbezhenar

5
Đối với cordova 5.0.0 trở lên, hãy tạo build.json trên thư mục gốc của dự án của bạn và điền nó bằng {"android": {"release": {"keystore": "/path/to/your.keystore", "alias ":" youalias "}}} thay vì tệp ant.properties. FYI cordova.apache.org/docs/en/edge/…
artberri

19

Trong cordova 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

Câu trả lời trước:

Theo cordova 5.0.0

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

và chạy ./build --release --buildConfig build.jsontừ thư mụcplatforms/android/cordova/

vị trí tệp kho khóa là liên quan đến platforms/android/cordova/, vì vậy trong .keystoretệp cấu hình ở trên và build.jsonnằm trong cùng một thư mục.

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


15

Sau khi lên đến @ steven-anderson, bạn cũng có thể định cấu hình mật khẩu bên trong ant.properties, vì vậy quá trình này có thể hoàn toàn tự động

vì vậy nếu bạn đưa vào platform \ android \ ant.properties những điều sau

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

1
Trên Windows, bạn phải thoát khỏi dấu gạch chéo ... '... key.store = C: \\ OpenSSL-Win32 \\ \\ Certs android_key_store.keystore ...'
bkomac

4

Tôi đã tự hỏi xung quanh rất nhiều vì tôi gặp vấn đề tương tự nhưng trong cài đặt của tôi, lệnh "cordova" không bao giờ khả dụng và "phone gap build android --release" chỉ bỏ qua platform / android / ant.properties.

vì vậy, khi nhìn vào bên trong bộ lọc nền tảng của mình, tôi tìm thấy một thư mục có tên "cordova" và bên trong nó có một tệp nhị phân "xây dựng" chấp nhận đối số --release, nó yêu cầu tôi cung cấp chuỗi khóa và tôi đã kết thúc bằng một ký kết và sẵn sàng để sản xuất APK.

điều này chưa bao giờ được ghi lại trong bất kỳ phần nào của trang web khoảng cách điện thoại và nói thẳng ra là bây giờ tôi hơi ghét phonegap :( nó được cho là làm cho mọi thứ dễ dàng hơn nhưng mọi thứ chỉ phức tạp :(


2

Xây dựng ứng dụng Android PhoneGap để triển khai cho Cửa hàng Google Play

Các bước này sẽ hoạt động đối với Cordova, PhoneGap hoặc Ionic. Sự khác biệt duy nhất sẽ là, bất cứ nơi nào cuộc gọi đến cordovađược thực hiện, hãy thay thế nó bằng phonegaphoặc ionic, cho tình huống cụ thể của bạn.

Khi bạn đã hoàn tất việc phát triển và sẵn sàng triển khai, hãy làm theo các bước sau:

  1. Mở cửa sổ dòng lệnh (Terminal trên macOS và Linux HOẶC Command Prompt trên Windows).

  2. Đi tới / path / to / your / project /, mà chúng tôi gọi là Project Root.

  3. Khi ở gốc dự án, hãy xóa plugin "Bảng điều khiển" khỏi tập hợp các plugin của bạn.

    Lệnh là:cordova plugin rm cordova-plugin-console

  4. Trong khi vẫn ở gốc dự án, hãy sử dụng lệnh xây dựng cordova để tạo APK để phân phối phát hành.

    Lệnh là:cordova build --release android

  5. Quá trình trên tạo một tệp được gọi android-release-unsigned.apktrong thư mụcProjectRoot/platforms/android/build/outputs/apk/

  6. Ký và căn chỉnh APK bằng cách sử dụng hướng dẫn tại https://developer.android.com/studio/publish/app-signs.html#signs-manently

    Ở cuối bước này, APK mà bạn nhận được có thể được tải lên Cửa hàng Play .

Lưu ý: Là một người mới hoặc một người mới bắt đầu, bước cuối cùng có thể hơi khó hiểu đối với tôi. Người ta có thể gặp một số vấn đề và có thể có một số câu hỏi như những lệnh này là gì và tìm chúng ở đâu.

Q1. Là gì jarsignerkeytool ?
Trả lời: Hướng dẫn của Android App Signing cho bạn biết cụ thể tất cả về jarignerkeytool là gì NHƯNG nó không cho bạn biết nơi tìm chúng nếu bạn gặp phải 'lỗi không tìm thấy lệnh' trên cửa sổ dòng lệnh.

Do đó, nếu bạn đã thêm Bộ phát triển Java (JDK) vào biến PATH của mình , chỉ cần chạy các lệnh như trong Hướng dẫn sẽ hoạt động. NHƯNG, nếu bạn không có nó trong PATH của mình, bạn luôn có thể truy cập chúng từ thùng thư mục của cài đặt JDK.

Quý 2. Đâu là căn chỉnh nén ?
Trả lời: Có khả năng cao là không tìm thấy lệnh zipalign và nhận được 'lỗi không tìm thấy lệnh'. Bạn có thể đang tìm kiếm zipalign trên googling và tìm nó ở đâu?

Các căn chỉnh nén tiện ích hiện diện trong thư mục cài đặt Android SDK. Trên macOS, vị trí mặc định là tại user-name/Library/Android/sdk/,. Nếu bạn đi qua các thư mục mà bạn sẽ tìm thấy một loạt các thư mục khác như docs, platform-tools, build-tools, tools, add-ons...

Mở build-toolsthư mục. cd build-tools. Tại đây, sẽ có một số thư mục được tạo phiên bản theo chuỗi công cụ xây dựng mà bạn đang sử dụng trong Trình quản lý SDK Android. ZipAligncó sẵn trong mỗi thư mục này. Cá nhân tôi đi tìm thư mục có phiên bản mới nhất trên đó. Mở bất kỳ.

Trên macOS hoặc Linux, bạn có thể phải sử dụng ./zipalignthay vì chỉ cần nhập zipalignnhư tài liệu đã đề cập. Trên Windows, zipalignlà đủ tốt.


1

tôi đã làm việc này bằng cách sao chép, dán ứng dụng đã ký vào cùng một thứ như zipalign. Có vẻ như aapt.exe không thể tìm thấy tệp nguồn ngay cả khi được cung cấp đường dẫn. tức là điều này không hoạt động zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ destination.apk nó đã đạt đến aapt.exeCordovaApp-release-unsigned.apk, bị đóng băng và khi nhấn trở lại 'aapt.exeCordovaApp-release-unsigned.apk' không được nhận dạng là lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt. Và điều này đã làm được zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk


Cảm ơn vì tiền hỗ trợ. Bạn cũng có thể bao gồm đường dẫn đến thư mục của zipalign trong biến môi trường PATH.
Guillermo Gutiérrez

0

Tôi biết câu hỏi này hỏi về Phonegap 3.X cụ thể, nhưng chỉ để tham khảo bất kỳ phiên bản Phonegap nào trên 4.0.0 sử dụng Gradle thay vì Ant để xây dựng theo mặc định. Để sử dụng Ant thay vì Gradle, bạn có thể thêm cái này vào config.xml của mình:

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

Khi sử dụng Gradle, thông tin ký kho khóa bây giờ cần phải chuyển sang một vị trí mới ( như được nêu trong bài đăng này ). Tạo tệp mới có tên ' release-sign.properties ' trong cùng thư mục với tệp "build.gradle" và đưa vào bên trong nội dung sau:

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

Bạn có thể thử lệnh này, nó sẽ xây dựng và chạy ứng dụng (nên tạo .apk):

phonegap local run android


3
Nó vẫn chỉ tạo các APK gỡ lỗi.
Guillermo Gutiérrez

2
Không, nó chỉ là nó tạo ra các APK đã ký gỡ lỗi chứ không phải phát hành APK.
Guillermo Gutiérrez

1
Đã tìm thấy giải pháp ở đây (3/4 cách: "Hoàn thiện apk để tải lên Google Play"): iphonedevlog.wordpress.com/2013/08/16/…
Laurie Clark
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.