2014-05-12 3 views
2

Android 프로젝트 (Android Studio 및 Gradle 포함) 및 Jenkins CI 서버이 있습니다.Android에서 gradle을 사용하여 서명되지 않은 apk 생성

내가하려는 것은 서명이없는 인증서을 생성하는 것입니다. 서버 응용 프로그램을 빌드 할 때

는 사실, 그것은 -unsigned.apk 일을 생성하지 않습니다하지만이 APKdevelopper 인증서에 의해 서명 된 것으로 보인다. 나는 (행의 많은)

jarsigner -verify -verbose -certs app-unsigned.apk | grep Android 

그래서 출력이

X.509, CN=Android Debug, O=Android, C=US 

같다 (How do I verify that an Android apk is signed with a release certificate?를 읽은 후) 다음 명령을 APK를 다운로드하고 실행하여이 체크 아웃 사실

무엇을 위해서, 나는 gradle 작업을 실행하는 앱을 만듭니다.

사람이 생성하는 아이디어가있는 경우
clean assemble lint 

그리고 그 후 63,210, 나는

을 실행하여 모든 APK가를 zipaling 것은
zipalign -f -v 4 *.apk 

build.gradle는 서명 옵션

android { 
    compileSdkVersion 19 
    buildToolsVersion '19.0.1' 

    defaultConfig { 
     minSdkVersion 10 
     targetSdkVersion 19 
    } 

    buildTypes { 
     debug { 
      // proguard 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      // ZipAlign 
      zipAlign false 
     } 

     release { 
      // proguard 
      runProguard true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      // ZipAlign 
      zipAlign true 
     } 
    } 

    productFlavors { 
     defaultFlavor { 
     proguardFile 'proguard-rules.txt' 
     } 
    } 

    lintOptions { 
     // Don't abort if Lint finds an error, otherwise the Jenkins build 
     // will be marked as failed, and Jenkins won't analyse the Lint output 
     abortOnError false 
    } 
} 

가 포함되어 있지 않습니다 완전한 서명되지 않은 apk 그것은 나를 많이 도울 것입니다. 도움 주셔서 감사합니다.

+0

독서가 끝나면 나 자신이 서명해야하는 서명되지 않은 apk를 얻으려면 릴리스 모드로 구축해야하는 것으로 보입니까? [Android dev] (http://developer.android.com/tools/building/building-cmdline.html#ReleaseMode)'서명하지 않은 응용 프로그램을 빌드하면 수동으로 서명하고 패키지를 정렬해야합니다. 그걸 시험해 볼게. –

답변

5

좋아, 결과를 얻을 수있었습니다.

사실 내 빌드에 사용했던 작업에있었습니다.

나는 생성 된 APK 지금 앱 출시 - unsigned.apk이다 나는

clean assembleRelease lint 

에 대해 변경

clean assemble lint 

그리고 사용하지만이 명령을 실행할 때

jarsigner -verify -verbose -certs app-release-unsigned.apk | grep Android 

출력 아무 것도 없습니다 그래서 나는 그것이 효과가 있다고 생각합니다. 내가 assemble 다음 assembleReleaselike I read on gradleassembleDebug에 대한 바로 가기의 일종이고 생각하지만 생성 된 APK가 같은 이름 (앱 출시 - unsigned.apk)하지만 중 하나를 가지고 있다는 것 때문에

나를 위해 신비 그들은 서명되었고, 다른 것은 서명되지 않았다.

어쨌든 assembleRelease을 사용하는 것 같습니다.

관련 문제