Cree un archivo APK sin firmar con Android Studio

272

Estoy desarrollando una aplicación de Android con la herramienta de desarrollo de Android. Ahora probé el nuevo Android Studio, todo funciona bien si conecto mi teléfono inteligente con la PC y ejecuto directamente el programa en Android Studio. Pero ahora quiero probar el programa con otros teléfonos inteligentes sin conectarlos a mi PC.

El ADT crea el archivo .apk en "nombre del proyecto / bin" cada vez que compila el programa. Cómo lo veo en el momento en que Android Studio no hace eso.

Entonces, mi pregunta es ¿es posible crear un archivo .apk sin firmar con Android Studio?

klange
fuente
10
Técnicamente, lo que quieres es un apk firmado con una clave de depuración. El dispositivo rechazará un apk que en realidad no esté firmado.
Chris Stratton
Para su información, siempre deberíamos preferir exportar aplicaciones firmadas, según lo respondió @Nirmal Dhara. Esto es mucho más seguro.
Mukund
2
@ChrisStratton ¿Siempre se rechazará?
Sreekanth Karumanaghat
Lo
resuelvo

Respuestas:

326

Te recomendaría que construyas tu archivo APK con Gradle:

  • Haga clic en el menú desplegable en la barra de herramientas en la parte superior (abra el cuadro de diálogo 'Editar configuraciones de ejecución / depuración')
  • Seleccione "Editar configuraciones"
  • Haga clic en el "+"
  • Seleccione "Gradle"
  • Elige tu módulo como proyecto Gradle
  • En Tareas: ingrese assemble
  • Presione Ejecutar

Tu APK sin firmar ahora se encuentra en

ProjectName\app\build\outputs\apk

Para obtener información detallada sobre cómo usar Gradle, este tutorial es bueno: Construir con Gradle en Android Studio . También escribí una publicación de blog sobre cómo construir un APK sin firmar con Gradle.

Si movió su proyecto desde el otro IDE y no desea volver a compilar , puede encontrar su archivo APK que ya estaba integrado en el IDE desde el que se mudó:

  • Si generó el Proyecto con Android Studio, el archivo APK se encontrará en ProjectName/ProjectName/build/apk/...

  • Importó el proyecto desde eclipse: el archivo debe estar en el mismo directorio. Ir a Project-Show in Explorer . Allí debería encontrar la carpeta bin donde se encuentra su archivo APK.

  • Importado de IntelliJ, la ubicación sería ProjectName/out/production/...

Nota al margen: como Chris Stratton mencionó en su comentario:

Técnicamente, lo que quieres es un APK firmado con una clave de depuración. El dispositivo rechazará un APK que en realidad no esté firmado.

bpoiss
fuente
1
Sí, importé el proyecto desde eclipse. Pero en mi caso, la carpeta bin no es tocada por Android Studio. Con un poco de búsqueda lo encontré solo. En mi caso, el .apk estaba ubicado en "nombre del proyecto / fuera / producción / nombre del proyecto /"
klange
Esto debería ser solo en caso de que cambie de IntelliJ
bpoiss
9
Estoy generando el proyecto directamente con Studio pero no hay una carpeta llamada "bin" en ninguna de las carpetas del proyecto. Y en la carpeta "build" solo hay dos carpetas, a saber, "res" y "source" y ninguna carpeta "bin". me puedes sugerir algo ahora?
Himanshu Aggarwal
25
Click the dropdown menu in the toolbar at the topEsto es muy general. ¿Qué menú desplegable? ¿Qué barra de herramientas?
Tres
3
@dthree puede hacer clic en "Ejecutar" en la barra de menú superior y seleccionar "Editar configuraciones" en el menú desplegable
Gema Megantara
226

De acuerdo con Build Unsigned APK con Gradle , simplemente puede construir su aplicación con gradle. Para poder hacer eso:

  1. haga clic en el menú desplegable en la barra de herramientas en la parte superior (generalmente con el ícono de Android y el nombre de su aplicación)
  2. Seleccione Edit configurations
  3. haga clic en el signo más en la esquina superior izquierda o presione alt+insert
  4. Seleccione Gradle
  5. elige tu módulo como Gradle project
  6. en Tasks:entrarassemble
  7. prensa OK
  8. presiona play

Después de eso, debe encontrar su 'apk' sin firmar en el directorio ProjectName\app\build\outputs\apk

marcin
fuente
1
+ edite build.gradle con android {lintOptions {checkReleaseBuilds false abortOnError false} [....]} y funciona! gracias
Steffi
Gracias Marcin ... funcionó .. Una cosa a notar es que no pude encontrar "/ salidas apk" carpeta en el Estudio de Android .. Es sólo apareció en el sistema de archivos ..
Govind
La tarea 'ensamblar' no se encuentra en el proyecto raíz 'bin'.
nVentimiglia
2da votación. Esta debería ser la respuesta correcta. Tuve este problema en una instalación de estudio de Android limpia con importación de proyectos. Debe realizar esta configuración manual para obtener los archivos apk de una compilación.
rickfoosusa
Funciona en 1.5.1, pero en realidad construye aplicaciones de proyecto completas incluso si se ha seleccionado un solo módulo.
Sandrstar
94

La forma más fácil, supongo:

  • Abra la pestaña Gradle en el lado derecho
  • Haga doble clic en YourProject /: app / assemble (o assembleDebug)
  • Encontrarás el apk aquí
    ... / YourProject / app / build / salidas / apk / app-debug.apk

captura de pantalla

Andrey
fuente
1
Gracias, una respuesta mucho más simple que la aceptada, y permite no construir apk en cada ejecución
Irhala
42

solo ve a BUILD-> Build APK y listo

Aakash Bansal
fuente
8
+1. Un método MUY simple. Por cierto, puedes encontrar el APK generado enAndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix
así de simple, muchas gracias, funcionó, lo aprecio.
Zeyad
23

Paso 1 Abra el estudio de Android. Construir -> Generar APK firmado ... ahora haga clic en "Generar APK firmado".

ingrese la descripción de la imagen aquí

Paso 2

ingrese la descripción de la imagen aquí

Haz clic en Crear nuevo.

Paso 3

Rellene los detalles y haga clic en Aceptar. ingrese la descripción de la imagen aquí

jks detalles clave, volverá a la ventana anterior.

ingrese la descripción de la imagen aquí

Haga clic en Siguiente y proporcione la contraseña que almacenó en la clave.

Paso 4

ingrese la descripción de la imagen aquí

Ahora haga clic en Finalizar y espere para completar el proceso de construcción.

ingrese la descripción de la imagen aquí

Ahora apk generado con éxito. Haga clic en mostrar en el Explorador.

ingrese la descripción de la imagen aquí

Si necesita más detalles, visite y consulte la demostración en vivo http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs

Nirmal Dhara
fuente
3
Pregunta pide apk sin firmar
ravelinx
18

En Android Studio:

  1. Construir

  2. Construir APK (s)

  3. Espere y vaya a la ubicación que se muestra en una ventana emergente. En el lado inferior derecho

ingrese la descripción de la imagen aquí

Andrii Kovalchuk
fuente
14

Sí, es posible crear un .apk sin firmar con Android Studio.

Resalte el Proyecto en su explorador de paquetes o columna de proyecto, y luego File- Project Structure- Artifacts- +- Android Application- From module 'your app'y luego puede cambiar la ubicación y algunas otras opciones. Habilito build on make, solo por facilidad.

schott12521
fuente
aparece el mensaje "Proporcionaremos una interfaz de usuario para configurar los ajustes del proyecto más tarde. Hasta entonces, edite manualmente sus archivos build.gradle". ¿Ahora qué debo hacer?
Himanshu Aggarwal
8
¿Y si no tengo ningún "artefacto" allí?
ardilla
Pulse el signo más en la
esquina
jetbrains.com/idea/webhelp/artifacts.html ¿cuál es el punto de usar artefactos? Pensé que era generar un apk de depuración de apk sin firmar, etc. pero parece que simplemente puede ir a la carpeta build / apk para obtener el apk sin firmar siempre que ejecute assemblerelease desde el menú gradle (al menos en intellij IDE). Acabo de configurar un artefacto, pero tengo problemas para descubrir qué hacer realmente con él. ¿Puede alguien ayudarme a aclarar la diferencia y usar o señalarme en la dirección correcta?
cjayem13
@ cjayem13 Algunos proyectos no usan Gradle.
Marc Plano-Lesay
11

Con Android Studio 2.2.3 en OSX acabo de usar el menú superior:

Build > Build APK

Abrió Finder con el .apkarchivo. Esto no generará un APK firmado. Puede seleccionar Generate Signed APKdesde el mismo menú si es necesario.

pascal
fuente
Traté de generar un APK firmado pero está pidiendo una ruta de almacenamiento de claves. ¿Qué se supone que debe proporcionarse allí?
codeinprogress
11
Build -> Build APK     //unsigned app


Build -> Generate Signed APK  //Signed app
Siva Prakash
fuente
11

AndroidStudio 3.4


Después de Grade Build Runningcompletar, verá la notificación en la esquina inferior derecha como.

Haga clic en locatey verá su APK depurable

Phan Van Linh
fuente
10

Simplemente vaya a su aplicación \ app \ build \ salidas \ apk

y copie ambos al teléfono e instale app-debug.apk

WhiteWolfza
fuente
1
¿Es realmente necesario copiar ambos archivos?
Vahid Ghadiri
4

El siguiente trabajo para mí:

Mantenga la siguiente configuración en blanco si ha realizado en build.gradle.

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

y elija Gradle Task en la ventana de su editor. Mostrará una lista de todos los sabores si ha creado.

ingrese la descripción de la imagen aquí

Código
fuente
3

--- Crear nueva configuración en signConfigs

unsigned {
        //do not sign
    }

--- Crear tipo de compilación en buildTypes

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Vaya a construir variantes y elija estándar sin firmar. Construir proyecto.

--- Vaya a "salidas / apk" y busque "XXX-unsigned.apk". Para verificar si no está firmado, intente instalarlo en el dispositivo; fallará.

tiburón
fuente
Esto no funciona. Debe definir el signinigConfig un poco diferente (tomado de stackoverflow.com/a/18121401/624109 )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
Muzikant
1

Ahora en Android Studio v1.1.0 debería ser:

  1. seleccione Run>Run <your app>
  2. encontrar el archivo .apk en <your app>\build\outputs\apk
John_J
fuente
Estoy usando 1.2.1.1 pero su enfoque no funciona. ¡Tengo que crear un ensamblaje de Gradle!
programador
0

Android Studio también crea el archivo apk cada vez que compila el programa, solo vaya a la carpeta de su espacio de trabajo y busque app-> build-> salidas-> luego puede ver el archivo apk.

usuario5649834
fuente
0

Puede hacer clic en el menú desplegable cerca del botón Ejecutar en la barra de herramientas,

  1. Seleccione "Editar configuraciones"
  2. Haga clic en el "+"
  3. Seleccione "Gradle"
  4. Elija su módulo como proyecto Gradle
  5. En Tareas: ingrese ensamblar

Ahora presiona ok,

todo lo que necesita hacer ahora es seleccionar su configuración del menú desplegable y presionar el botón Ejecutar. Tomará un poco de tiempo. Su apk sin firmar ahora se encuentra en

Project\app\build\outputs\apk
Chathura Jayanath
fuente
0

Lo resuelvo!

En primer lugar, debe agregar estos:

defaultConfig { 
 multiDexEnabled true
}

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

Después, debe hacer clic en Construir en la barra superior de Android Studio:

Build > Build Bundle (s) / APK (s)> Build APK (s)

Finalmente, tiene un archivo app-debug.apk en:

aplicación> compilación> salidas> apk> depuración> app-debug.apk

Nota : archivos apk, debug, app-debug.apk creados automáticamente en el archivo de salida por Android Studio.

Canerkaseler
fuente
0

Pasos para crear APK sin firmar

Nota: Técnicamente, lo que quieres es un APK firmado con una clave de depuración. El dispositivo rechazará un APK que en realidad no esté firmado. Por lo tanto, Unsigned APK dará un error si lo instala en el dispositivo.

Lakshay Sharma
fuente
recibí su error 'No se pudo establecer el directorio de trabajo del proceso en' C: \ Users \ marad \ .gradle \ daemon \ 5.2.1 \ My Application ': no ​​se pudo establecer el directorio actual (error 2)'
ass-king alguna pregunta
0

Para APK sin firmar: simplemente establezca la firma de configuración nulo. Le dará appName-debug-unsigned.apk

debug {
     signingConfig null
}

Y construir desde el menú Construir. Disfrutar

Para APK firmado:

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'
        }
    }

archivo keystore.properties

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0
Qamar
fuente