Android Studio를 사용하여 서명되지 않은 APK 파일 빌드


271

Android Developer Tool을 사용하여 Android 앱을 개발 중입니다. 이제 새로운 Android Studio를 사용해 보았습니다. 스마트 폰을 PC에 연결하고 Android Studio에서 프로그램을 직접 실행하면 모든 것이 잘 작동합니다. 그러나 이제 다른 스마트 폰으로 PC에 연결하지 않고 프로그램을 테스트하고 싶습니다.

ADT는 프로그램을 컴파일 할 때마다 "projectname / bin"아래에 .apk 파일을 만듭니다. 안드로이드 스튜디오가 그것을하지 않는 순간에 그것을 어떻게 보는가?

그래서 내 질문은 Android Studio로 서명되지 않은 .apk 파일을 만들 수 있습니까?


10
기술적으로 원하는 것은 디버그 키로 서명 된 APK입니다. 실제로 서명되지 않은 APK는 장치에서 거부합니다.
Chris Stratton

참고로 @Nirmal Dhara의 답변에 따라 서명 된 앱을 내보내는 것이 좋습니다. 이것은 훨씬 안전합니다.
Mukund

2
@ChrisStratton 항상 거부됩니까?
Sreekanth Karumanaghat

이 솔루션으로 해결합니다 : stackoverflow.com/a/56201481/8471798
canerkaseler

답변:


325

Gradle을 사용하여 APK 파일을 빌드하는 것이 좋습니다.

  • 상단의 툴바에서 드롭 다운 메뉴를 클릭하십시오 ( 'Run / Debug 구성 편집'대화 상자 열기)
  • "구성 편집"을 선택하십시오
  • "+"를 클릭하십시오
  • "Gradle"을 선택하십시오
  • Gradle 프로젝트로 모듈을 선택하십시오
  • 작업에서 : 입력 assemble
  • 실행을 누르십시오

서명되지 않은 APK는 이제

ProjectName\app\build\outputs\apk

Gradle 사용 방법에 대한 자세한 내용은이 자습서를 사용하는 것이 좋습니다 : Android Studio에서 Gradle을 사용하여 빌드 . 또한 Gradle을 사용하여 서명되지 않은 APK를 작성하는 방법에 대한 블로그 게시물 을 작성했습니다 .

다른 IDE에서 프로젝트를 이동하고 다시 컴파일하지 않으려는 경우 , 이동 한 IDE에 이미 빌드 된 APK 파일을 찾을 수 있습니다.

  • Android Studio로 프로젝트를 생성 한 경우 APK 파일은 ProjectName/ProjectName/build/apk/...

  • Eclipse에서 프로젝트를 가져 왔습니다. 파일이 동일한 디렉토리에 있어야합니다. Project-로 이동하십시오 Show in Explorer. APK 파일이있는 bin 폴더가 있습니다.

  • IntelliJ에서 가져온 위치는 ProjectName/out/production/...

참고 : Chris Stratton이 자신의 의견에서 언급 한 것처럼 :

기술적으로 원하는 것은 디버그 키로 서명 된 APK입니다. 실제로 서명되지 않은 APK는 장치에서 거부합니다.


1
네, 일식에서 프로젝트를 가져 왔습니다. 그러나 내 경우에는 bin 폴더가 Android Studio에서 만지지 않습니다. 약간의 검색으로 나는 내 자신에 의해 그것을 발견했다. 제 경우에는 .apk는 "projectname / out / production / projectname /"에 있습니다
klange

IntelliJ에서 전환 한 경우에만 해당됩니다.
bpoiss

9
Studio에서 직접 프로젝트를 생성하고 있지만 프로젝트 폴더에 "bin"이라는 폴더가 없습니다. "build"폴더에는 "res"와 "source"라는 두 개의 폴더 만 있고 "bin"폴더는 없습니다. 지금 나에게 제안 해 줄 수 있습니까?
Himanshu Aggarwal

25
Click the dropdown menu in the toolbar at the top이것은 너무 일반적입니다. 어떤 드롭 다운 메뉴? 어떤 툴바?
dthree

3
@dthree 상단 메뉴 표시 줄에서 "실행"을 클릭하고 드롭 다운에서 "구성 편집"을 선택하십시오.
Gema Megantara

226

Gradle 을 사용 하여 Unsigned APK 빌드 에 따르면 단순히 gradle을 사용하여 애플리케이션을 빌드 할 수 있습니다. 그렇게하려면 :

  1. 상단의 툴바에서 드롭 다운 메뉴를 클릭하십시오 (일반적으로 안드로이드 아이콘 및 응용 프로그램 이름 사용)
  2. 고르다 Edit configurations
  3. 왼쪽 상단에서 더하기 기호를 클릭하거나 alt+insert
  4. 고르다 Gradle
  5. 모듈을 다음과 같이 선택하십시오 Gradle project
  6. Tasks:입력assemble
  7. 프레스 OK
  8. 프레스 플레이

그런 다음 디렉토리에서 서명되지 않은 'apk'를 찾으십시오. ProjectName\app\build\outputs\apk


1
+ android {lintOptions {checkReleaseBuilds false abortOnError false} [....]}로 build.gradle을 편집하면 작동합니다! 감사합니다
Steffi

당신에게 marcin 감사합니다 ... 그것은 작동했습니다. 주목해야 할 것은 안드로이드 스튜디오에서 "outputs / apk"폴더를 찾을 수 없다는 것입니다 .. 그것은 파일 시스템에만 나타납니다 ..
Govind

루트 프로젝트 'bin'에서 태스크 'assemble'을 찾을 수 없습니다.
nVentimiglia

두 번째 투표. 정답이어야합니다. 프로젝트 가져 오기로 깨끗한 안드로이드 스튜디오 설치 에서이 문제가 발생했습니다. 빌드에서 apk 파일을 가져 오려면이 수동 설정을 거쳐야합니다.
rickfoosusa

1.5.1에서 작동하지만 단일 모듈을 선택하더라도 실제로 전체 프로젝트 APK를 빌드하십시오.
sandrstar

94

가장 쉬운 방법은 다음과 같습니다.

  • 오른쪽의 Gradle 탭을 엽니 다
  • YourProject / : app / assemble (또는 assembleDebug)을 두 번 클릭하십시오.
  • 여기 APK를 찾을 수 있습니다
    ... / YourProject / app / build / outputs / apk / app-debug.apk

스크린 샷


1
감사합니다. 허용 된 답변보다 훨씬 간단하며 각 실행에서 APK를 만들 수 없습니다
Irhala

42

BUILD-> Build APK로 이동하면 완료됩니다.


8
+1. 매우 간단한 방법입니다. BTW, 당신은 생성 된 APK를 찾을 수 있습니다AndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix

그렇게 간단합니다. 감사합니다. 효과가있었습니다. 감사합니다.
Zeyad

23

1 단계 안드로이드 스튜디오를 엽니 다. 빌드-> 서명 된 APK 생성…. 이제 "Signed APK 생성"을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

2 단계

여기에 이미지 설명을 입력하십시오

새로 작성을 클릭하십시오.

3 단계

세부 사항을 채우고 확인을 클릭하십시오. 여기에 이미지 설명을 입력하십시오

jks 주요 세부 사항, 이전 창으로 돌아갑니다.

여기에 이미지 설명을 입력하십시오

다음을 클릭하고 키에 저장 한 비밀번호를 제공하십시오.

4 단계

여기에 이미지 설명을 입력하십시오

이제 Finish를 클릭하고 빌드 프로세스를 완료하기를 기다립니다.

여기에 이미지 설명을 입력하십시오

이제 apk가 성공적으로 생성되었습니다. 탐색기에서 표시를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

자세한 내용이 필요하면 라이브 데모를 방문하여 확인하십시오 http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs


3
질문 서명되지 않은 APK를 요청합니다
ravelinx

18

Android Studio에서 :

  1. 짓다

  2. APK 빌드

  3. 기다렸다가 팝업 창에 표시된 위치로 이동하십시오. 오른쪽 하단에

여기에 이미지 설명을 입력하십시오


14

예, Android Studio에서 서명되지 않은 .apk를 만들 수 있습니다!

패키지 탐색기 또는 프로젝트 열에서 프로젝트를 선택한 다음 File- Project Structure- Artifacts- +- Android Application- From module 'your app'다음은 위치와 몇 가지 다른 옵션을 변경할 수 있습니다. 쉽게 빌드 할 수 있도록합니다.


"프로젝트 설정을위한 UI를 나중에 제공 할 것입니다. 그때까지 build.gradle 파일을 수동으로 편집하십시오"라는 메시지가 나타납니다. 이제 어떻게해야합니까?
Himanshu Aggarwal

8
"아티팩트"가 없으면 어떻게해야합니까?
다람쥐

왼쪽 상단에있는 더하기 기호 (+)를 히트 당신은 안드로이드 응용 프로그램을 얻을 수 있습니다
CACuzcatlan

jetbrains.com/idea/webhelp/artifacts.html 이슈 사용의 요점은 무엇입니까? 나는 그것이 서명되지 않은 apk 디버그 apk 등을 생성하는 것이라고 생각했지만 gradle 메뉴 (적어도 intellij IDE)에서 assemblerelease를 실행하는 한 build / apk 폴더로 이동하여 서명되지 않은 apk를 얻을 수있는 것처럼 보입니다. 방금 아티팩트를 구성했지만 실제로 어떻게해야하는지 파악하는 데 문제가 있습니다. 누군가 차이점을 분명히하고 나를 사용하거나 올바른 방향으로 안내하도록 도와 줄 수 있습니까?
cjayem13

@ cjayem13 일부 프로젝트는 Gradle을 사용하지 않습니다.
Marc Plano-Lesay

11

OSX의 Android Studio 2.2.3에서는 최상위 메뉴를 사용했습니다.

Build > Build APK

.apk파일 과 함께 Finder를 열었습니다 . 서명 된 APK는 생성되지 않습니다. Generate Signed APK필요한 경우 동일한 메뉴에서 선택할 수 있습니다 .


서명 된 APK를 생성하려고했지만 키 저장소 경로를 요청하고 있습니다. 거기에 무엇을 제공해야합니까?
codeinprogress


11

AndroidStudio 3.4


Grade Build Running완료, 당신은 같은 오른쪽 하단에 알림이 표시됩니다.

를 클릭 locate하면 디버깅 가능한 APK가 표시됩니다


10

응용 프로그램 \ app \ build \ outputs \ apk로 이동하십시오.

전화로 복사하고 app-debug.apk를 설치하십시오.


1
두 파일을 모두 복사해야합니까?
Vahid Ghadiri

4

나를 위해 다음과 같은 일 :

build.gradle에서 만든 경우 다음 설정을 비워 두십시오.

signingConfigs {
        release {
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
    }

Editor 창에서 Gradle Task를 선택하십시오. 생성 한 경우 모든 맛 목록이 표시됩니다.

여기에 이미지 설명을 입력하십시오


3

--- signingConfigs에서 새 구성 만들기

unsigned {
        //do not sign
    }

--- buildTypes에서 빌드 타입 생성

unsigned {
        versionNameSuffix '-unsigned'
    }

--- 변형을 만들고 서명되지 않은 표준을 선택했습니다. 프로젝트를 빌드하십시오.

--- "outputs / apk"로 이동하여 "XXX-unsigned.apk"를 찾으십시오. 서명되지 않았는지 확인하려면 장치에 설치하십시오. 실패합니다.


작동하지 않습니다. signinigConfig를 약간 다르게 정의해야합니다 ( stackoverflow.com/a/18121401/624109 에서 signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
가져옴

1

이제 Android Studio v1.1.0은 다음과 같아야합니다.

  1. 선택 Run>Run <your app>
  2. 에서 .apk 파일 찾기 <your app>\build\outputs\apk

1.2.1.1을 사용하고 있지만 접근 방식이 작동하지 않습니다. Gradle 어셈블리를 만들어야합니다!
프로그래머

0

안드로이드 스튜디오는 또한 프로그램을 컴파일 할 때마다 apk 파일을 생성합니다. 작업 공간 폴더로 이동하여 app-> build-> outputs->를 찾으면 apk 파일을 볼 수 있습니다.


0

툴바의 실행 버튼 근처에있는 드롭 다운을 클릭하면

  1. "구성 편집"을 선택하십시오
  2. "+"를 클릭하십시오
  3. "Gradle"을 선택하십시오
  4. Gradle 프로젝트로 모듈을 선택하십시오
  5. 작업에서 : 조립 입력

이제 확인을 누르십시오.

드롭 다운에서 구성을 선택하고 실행 버튼을 누르기 만하면됩니다. 시간이 좀 걸릴 것입니다. 서명되지 않은 APK는 이제

Project\app\build\outputs\apk

0

나는 그것을 해결한다!

먼저 다음을 추가해야합니다.

defaultConfig { 
 multiDexEnabled true
}

dependencies {
 implementation 'com.android.support:multidex:1.0.3'
}

그런 다음 Android Studio의 상단 표시 줄에서 빌드 를 클릭해야합니다 .

빌드 > 빌드 번들 / APK> 빌드 APK

마지막으로 app-debug.apk 파일이 있습니다.

앱> 빌드> 출력> apk> 디버그> app-debug.apk

참고 : apk, debug, app-debug.apk 파일은 Android Studio의 출력 파일에 자동으로 생성됩니다.


0

서명되지 않은 APK를 만드는 단계

참고 : 기술적으로 원하는 것은 디버그 키로 서명 된 APK입니다. 실제로 서명되지 않은 APK는 장치에서 거부합니다. 따라서 장치에 설치하면 서명되지 않은 APK에서 오류가 발생합니다.


'프로세스 작업 디렉토리를'C : \ Users \ marad \ .gradle \ daemon \ 5.2.1 \ My Application '으로 설정할 수 없습니다 : 현재 디렉토리를 설정할 수 없습니다 (errno 2)'
일부 질문

0

서명되지 않은 APK의 경우 : 단순히 signingConfig를 null로 설정하십시오. 그것은 당신에게 appName-debug-unsigned.apk를 줄 것입니다

debug {
     signingConfig null
}

그리고 빌드 메뉴에서 빌드하십시오. 즐겨

서명 된 APK의 경우 :

signingConfigs {
        def keyProps = new Properties()
        keyProps.load(rootProject.file('keystore.properties').newDataInputStream())
        internal {
            storeFile file(keyProps.getProperty('CERTIFICATE_PATH'))
            storePassword keyProps.getProperty('STORE_PASSWORD')
            keyAlias keyProps.getProperty('KEY_ALIAS')
            keyPassword keyProps.getProperty('KEY_PASSWORD')
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.internal
            minifyEnabled false
        }
        release {
            signingConfig signingConfigs.internal
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

keystore.properties 파일

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.