Làm thế nào để thiết lập gradle và studio android để thực hiện xây dựng bản phát hành?


79

Tôi muốn xây dựng ứng dụng android và bắt đầu ký nó. Đối với điều đó, tôi cần có phiên bản phát hành của apk. Tài liệu của Google chỉ đề xuất Eclipse và các cách ant để có các bản phát hành: http://developer.android.com/tools/publishing/app-signs.html#releasecompile

Tuy nhiên, tôi không thể tìm thấy cách bắt buộc phiên bản phát hành phiên bản nâng cấp của apk. build.gradlecũng không đưa ra bất kỳ gợi ý nào. gradlew tasksgợi ý rằng không có cấu hình Bản phát hành cài đặt, nhưng bản phát hành gỡ cài đặt tồn tại:

Install tasks
-------------
installDebug - Installs the Debug build
installTest - Installs the Test build for the Debug build
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build
uninstallRelease - Uninstalls the Release build
uninstallTest - Uninstalls the Test build for the Debug build

Của tôi build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile files('libs/android-support-v4.jar')
    compile project(":libraries:ActionBarSherlock")
    compile project(":libraries:CollabsibleSearchMenu")
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

Những gì tôi đang thiếu?


Tôi hiện không sử dụng Gradle trong Android Studio, nhưng cách để thực hiện việc này bằng cách sử dụng bản dựng Ant gốc là chỉ cần sử dụng Build-> Generate Signed APKtừ menu.
free3dom

Cảm ơn tôi đã bỏ lỡ điều đó, nó sẽ làm. Nhưng tôi vẫn muốn biết cách tạo riêng biệt phiên bản phát hành của gói chưa ký và sau đó thực hiện ký và bất cứ điều gì tôi muốn với nó.
IBr

bạn sẽ tự động nhận được phiên bản phát hành và gỡ lỗi của phiên bản phiên bản xây dựng của bạn. Nếu bạn muốn có một gói chưa ký, hãy cho tôi biết.
nợ

Câu trả lời:


44

trong phiên bản mới nhất của android studio, bạn chỉ có thể làm:

./gradlew assembleRelease

hay gọi aRtắt là. Điều này sẽ tạo ra một apk phát hành chưa được ký. Việc tạo apk đã ký có thể được thực hiện tương tự hoặc bạn có thể sử dụng Build -> Generate Signed Apk trong Android Studio.

Xem tài liệu tại đây

Đây là build.gradle của tôi để tham khảo:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
  }
}
apply plugin: 'android'

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }

    // Move the tests to tests/java, tests/res, etc...
    instrumentTest.setRoot('tests')

    // Move the build types to build-types/<type>
    // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
    // This moves them out of them default location under src/<type>/... which would
    // conflict with src/ being used by the main source set.
    // Adding new build types or product flavors should be accompanied
    // by a similar customization.
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')

}

buildTypes {
    release {

    }
}

3
Trong phiên bản mới nhất của Android Studio (0.2.11) Tạo Apk đã ký không còn hoạt động. Bạn được hướng dẫn thiết lập cấu hình ký trong tệp gradle.bundle của mình, tệp này (có lẽ) phải được chạy bằng tay từ dòng lệnh trừ khi bạn sẵn sàng mã hóa mật khẩu của mình ở đó: tools.android.com/tech- docs / new-build-system /…

13
Tại sao Android Studio càng mới, càng khó sử dụng?
Bagusflyer

121
  1. mở Build Variantsngăn, thường thấy dọc theo phía dưới bên trái của cửa sổ :

Xây dựng các biến thể

  1. đặt debugthànhrelease
  2. shift+f10 chạy!!

sau đó, Android Studio sẽ thực thi assembleReleasetác vụ và cài đặt xx-release.apk vào thiết bị của bạn.


5
làm thế nào để bạn mở Build Variants? đây có phải là điều tôi có thể làm trong Android Studio không?
Lou Morda

17
Việc xây dựng các biến thể là ở phía bên tay trái, vui lòng xem hình đính kèm để biết rõ hơn về vị trí :) Ảnh chụp màn hình
Jake Zachariah Nixon

7
Đã thử điều này. Nhưng nhận được lỗi: "app-release-unsigned.apk không ký hãy cấu hình các thông tin ký cho hương vị được lựa chọn bằng cách sử dụng cấu trúc dự án Dự án dialog.Open Cấu trúc Dialog"
jrhamza

2
@jrhamza Làm theo nó sẽ nhắc bạn thêm khóa phát hành.
ipcjs

2
Thật ngạc nhiên khi công tắc đơn giản này ẩn tốt như thế nào nếu bạn chưa bao giờ mở cửa sổ Build Variants!
aardvarkk

33

Không cần cập nhật gradle để tạo ứng dụng phát hành trong Android studio. Nếu bạn là người dùng eclipse thì mọi việc sẽ trở nên dễ dàng đối với bạn. Nếu bạn là người mới thì hãy làm theo các bước

1: Vào phần "Build" trên thanh công cụ. 2: Chọn tùy chọn "Tạo APK đã ký ...". nhập mô tả hình ảnh ở đây

3: điền vào biểu mẫu đã mở và tiếp tục 4: nếu bạn đã có .keystore hoặc .jks thì chọn tệp đó, nhập mật khẩu và tên bí danh và mật khẩu tương ứng của bạn. 5: Hoặc không có file .keystore hoặc .jks thì click vào nút Create new ... như hình 1 rồi điền vào form.nhập mô tả hình ảnh ở đây

Quá trình trên là thực hiện xây dựng thủ công. Nếu bạn muốn android studio tự động ký ứng dụng của bạn

Trong Android Studio, bạn có thể định cấu hình dự án của mình để tự động ký APK phát hành trong quá trình xây dựng:

Trên trình duyệt dự án, nhấp chuột phải vào ứng dụng của bạn và chọn Mở Cài đặt Mô-đun. Trên cửa sổ Cấu trúc dự án, chọn mô-đun ứng dụng của bạn trong Mô-đun. Nhấp vào tab Ký. Chọn tệp kho khóa của bạn, nhập tên cho cấu hình ký này (vì bạn có thể tạo nhiều hơn một) và nhập thông tin cần thiết. nhập mô tả hình ảnh ở đây Hình 4. Tạo cấu hình ký trong Android Studio.

Bấm vào tab Loại bản dựng. Chọn bản phát hành. Trong Cấu hình ký, chọn cấu hình ký bạn vừa tạo. nhập mô tả hình ảnh ở đây Hình 5. Chọn cấu hình ký trong Android Studio.

4: Điều quan trọng nhất làm cho debuggable = false ở gradle.

    buildTypes {
        release {
           minifyEnabled false
          proguardFiles getDefaultProguardFile('proguard-  android.txt'), 'proguard-rules.txt'
        debuggable false
        jniDebuggable false
        renderscriptDebuggable false
        zipAlignEnabled true
       }
     }

truy cập để biết thêm trong thông tin developer.android.com


2
Bạn là một người anh em tiết kiệm cuộc sống.
Jigar

21

Để kích hoạt installReleasetác vụ, bạn chỉ cần một signingConfig. Đó là tất cả.

Từ http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Android-tasks :

Cuối cùng, plugin tạo các tác vụ cài đặt / gỡ cài đặt cho tất cả các loại bản dựng (gỡ lỗi, phát hành, thử nghiệm), miễn là chúng có thể được cài đặt (yêu cầu ký).

Đây là những gì bạn muốn:

Install tasks
-------------
installDebug - Installs the Debug build
installDebugTest - Installs the Test build for the Debug build
installRelease - Installs the Release build
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build
uninstallDebugTest - Uninstalls the Test build for the Debug build
uninstallRelease - Uninstalls the Release build   <--- release

Đây là cách nhận installReleasenhiệm vụ:

Ví dụ build.gradle:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

apply plugin: 'com.android.application'

android {
  compileSdkVersion 22
  buildToolsVersion '22.0.1'

  defaultConfig {
    applicationId 'demo'
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName '1.0'
  }

  signingConfigs {
      release {
          storeFile <file>
          storePassword <password>
          keyAlias <alias>
          keyPassword <password>
      }
  }

  buildTypes {
    release {
        signingConfig signingConfigs.release
    }
  }
}

Điều này có nghĩa là chúng tôi giữ mật khẩu ở định dạng có thể đọc được? Làm thế nào để xử lý các dự án trong kho lưu trữ công cộng, để giữ mật khẩu riêng tư?
sivag1

2
Bạn có thể đặt trong một cục bộ gradle.propertieshoặc lưu trữ chúng trong CI.
Jared Burrows

1
Không thể tìm thấy phương thức storeFile ()
hiddeneyes02 Ngày

ĐặtstoreFile file(filename)
norekhov

SignConfig signConfigs.release trong các loại bản dựng đã tạo nên sự khác biệt cho tôi!
paul_f

8

Đây là một thủ tục để định cấu hình phiên bản phát hành chạy

1- Thay đổi các biến thể xây dựng thành phiên bản phát hành.

nhập mô tả hình ảnh ở đây

2- Cấu trúc dự án mở. nhập mô tả hình ảnh ở đây

3- Thay đổi cấu hình mặc định thành $ signConfigs.release nhập mô tả hình ảnh ở đây


1
Bạn là một vị thần ở nam giới
Mitch

1

Để biên dịch với phiên bản phát hành như hình dưới đây:

nhập mô tả hình ảnh ở đây

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.