2015-04-14 16 views
9

Tôi có một ứng dụng Android có 2 hương vị: internalproduction và cũng có 2 loại bản dựng: debugrelease.Ghi đè cấu hình đăng nhập loại gỡ lỗi với cấu hình ký hiệu hương vị

Tôi đang cố gán các cấu hình ký dựa trên hương vị, theo tài liệu có thể thực hiện được. Tôi đã nhìn và tìm thấy câu trả lời khác cho điều này, nhưng không ai trong số họ dường như làm việc. Tất cả mọi thứ biên dịch, nhưng các ứng dụng đang được ký kết với các kho khóa gỡ lỗi cục bộ cho máy của tôi.

Đây là tập tin gradle tôi:

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0.0" 
    } 

    signingConfigs { 
     internal { 
      storeFile file("../internal.keystore") 
      storePassword "password" 
      keyAlias "user" 
      keyPassword "password" 
     } 
     production { 
      storeFile file("../production.keystore") 
      storePassword "password" 
      keyAlias "user" 
      keyPassword "password" 
     } 
    } 

    productFlavors { 
     internal { 
      signingConfig signingConfigs.internal 
      applicationId 'com.test.test.internal' 
     } 
     production { 
      signingConfig signingConfigs.production 
      applicationId 'com.test.test' 
     } 
    } 

    buildTypes { 
     debug { 
      applicationIdSuffix ".d" 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    variantFilter { variant -> 
     if (variant.buildType.name.equals('debug') 
       && variant.getFlavors().get(0).name.equals('production')) { 
      variant.setIgnore(true); 
     } 
    } 
} 

Lưu ý: Tôi cũng đang biên soạn với classpath 'com.android.tools.build:gradle:1.1.3'

+0

Dưới đây là cách tốt nhất làm thế nào để làm điều này: http://stackoverflow.com/a/35057525/2557258 – Yazon2006

Trả lời

16

Dường như theo mặc định, Android có một bộ signingConfig vào loại debug build (debug android keystore) và khi signingConfig được đặt cho loại bản dựng, thì signingConfig bị bỏ qua cho hương vị.

Giải pháp là đặt signingConfig thành null trên loại xây dựng gỡ lỗi. Sau đó, signingConfig đưa ra cho các hương vị sẽ được sử dụng thay vì:

buildTypes { 
     debug { 
      // Set to null to override default debug keystore and defer to the product flavor. 
      signingConfig null 
      applicationIdSuffix ".d" 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
+1

Cảm ơn, tại sao '.d' trên 'applicationIdSuffix'? Điều đó có cần thiết không? –

+1

Không, không phải. Tôi cung cấp cho bản sửa lỗi của tôi xây dựng một gói riêng biệt so với bản phát hành bản phát hành của tôi, vì vậy chúng có thể được cài đặt trên cùng một thiết bị mà không can thiệp lẫn nhau. Tôi rất muốn giới thiệu nó mặc dù :-) – spierce7

+0

Ồ, tôi hiểu rồi. Đó là một ý tưởng hay. Cảm ơn ! –

Các vấn đề liên quan