2013-07-04 42 views
34

Hiện tại tôi đang cố gắng học Gradle để tạo APK Android. Làm thế nào để thiết lập một tùy chọn trong gradle để xây dựng một APK chưa ký?Tạo APK chưa ký với Gradle

+0

By unsigned bạn có nghĩa là ngay cả với phím debug? Tại sao ? – tbruyelle

+1

không. phiên bản phát hành nhưng chưa được ký – Zul

+0

@tbruyelle Amazon Appstore yêu cầu apks chưa ký. – withoutclass

Trả lời

59

Bạn không cần phải cài đặt bất kỳ tùy chọn, chỉ cần chạy các nhiệm vụ thông thường:

$ gradle assemble 

này sẽ tạo ra hai tập tin trong dự án/xây dựng/apk/

app-debug-unaligned.apk 
app-release-unsigned.apk 
+0

Tôi sẽ dùng thử và xem. – Zul

+1

Điều này không hiệu quả đối với tôi. Xem câu trả lời của tôi -> nó hoạt động. – owe

+0

@rafaello: Tôi biết đã lâu rồi. Nhưng giải pháp của tôi (câu trả lời ở trên) không hoạt động nữa (Tại sao? ... Tôi không biết). Bây giờ tôi đã thử bạn giải pháp và nó đã làm việc cho tôi. Cảm ơn rất nhiều! Sai lầm tôi đã thực hiện trong thời gian trước đó là để thiết lập một signConfig trong hương vị mà tôi muốn unsigned ... Bây giờ tôi loại bỏ signConfig và tất cả mọi thứ hoạt động tốt! Nó chỉ gây phiền nhiễu cho điều này trên dòng lệnh ... – owe

16

Để tạo một unsigned apk thực hiện như sau:

  • xác định signingConfig với cấu hình trống như sau:

    signingConfigs{ 
        unsigned{ 
         storePassword = "" 
         keyAlias = "" 
         keyPassword = "" 
        } 
    } 
    
  • xác định trong buildTypes cho bản phát hành của bạn với Configuration unsigned:

    buildTypes{ 
        release{ 
         signingConfig signingConfigs.unsigned 
        } 
    } 
    

tôi có được điều này từ adt-dev group, nơi Xavier Ducrohet viết:

The current behavior is to check that the signing config is fully configured(*) and if it is, it generates a signed APK, otherwise an unsigned APK.

(*) fully configured right now means the value for store, alias and passwords are present, but does not include that the keystore is present.

CẬP NHẬT 2013-12-19

Vì không có lớp được đề cập, tính năng này không hoạt động với phiên bản plugin gradle 0.6.3.

Dù sao, bạn có thể tạo APK chưa được ký với gradle: chỉ cần để cho mục nhập signingConfig có thuộc tính hoặc kiểu buildType trống. Nó sẽ giống như thế này:

productFlavors{ 
    // with this config you should get a "MyProject-flavorUnsigned-release-unsigned.apk" 
    flavorUnsigned{ 
     versionCode = 9 
     packageName defaultPkgName 
    } 
} 

buildTypes{ 
    // with this config you should get a "MyProject-release-unsigned.apk" 
    release{ 
     packageNameSuffix '.release' 
    } 
} 
+0

Không làm việc cho tôi nữa. Nhưng câu trả lời rafaellos khá tốt. Đã thêm bài đăng vào Nhóm nhà phát triển ADT trên G +: https: //plus.google.com/117954254390243608387/posts/N5dTMNS5UGv – owe

+1

Điều này không hoạt động vì bản dựng sẽ thất bại cho biết không có giá trị nào được chỉ định cho các trường bắt buộc. phiên bản plugin 0.6.3 – withoutclass

+0

@withoutclass: Quyền của bạn. Tôi đã cập nhật câu trả lời của mình và giải thích cách tạo một gói ứng dụng chưa ký với phiên bản gradle mới nhất. – owe

5

chỉ gán null để signingConfig

android { 
    buildTypes { 
    debug { 
     signingConfig null 
    } 
    } 
} 
Các vấn đề liên quan