Buat file APK yang tidak ditandatangani dengan Android Studio

272

Saya sedang mengembangkan aplikasi android dengan Alat Pengembang Android. Sekarang saya mencoba Android Studio yang baru, semuanya berfungsi baik jika menghubungkan ponsel cerdas saya dengan pc dan langsung menjalankan program di Android Studio. Tapi sekarang saya ingin menguji program dengan smartphone lain tanpa menghubungkannya ke pc saya.

ADT membuat file .apk di bawah "projectname / bin" setiap kali Anda mengkompilasi program. Bagaimana saya melihatnya saat ini Android Studio tidak melakukan itu.

Jadi pertanyaan saya mungkinkah membuat file .apk unsigned dengan Android Studio?

Klange
sumber
10
Secara teknis, yang Anda inginkan adalah apk yang ditandatangani dengan kunci debug. Apk yang sebenarnya tidak ditandatangani akan ditolak oleh perangkat.
Chris Stratton
FYI kita harus selalu lebih suka mengekspor aplikasi yang ditandatangani seperti yang dijawab oleh @Nirmal Dhara. Ini jauh lebih aman.
Mukund
2
@ ChrisStratton Akankah selalu ditolak?
Sreekanth Karumanaghat
Saya menyelesaikannya dengan solusi ini: stackoverflow.com/a/56201481/8471798
canerkaseler

Jawaban:

326

Saya akan merekomendasikan Anda untuk membangun file APK Anda dengan Gradle:

  • Klik menu tarik turun di bilah alat di bagian atas (Buka dialog 'Edit Jalankan / Konfigurasi debug')
  • Pilih "Edit Konfigurasi"
  • Klik "+"
  • Pilih "Gradle"
  • Pilih modul Anda sebagai proyek Gradle
  • Dalam Tugas: masukkan assemble
  • Tekan Jalankan

APK yang tidak ditandatangani Anda sekarang berada di

ProjectName\app\build\outputs\apk

Untuk informasi terperinci tentang cara menggunakan Gradle, tutorial ini baik untuk digunakan: Membangun dengan Gradle di Android Studio . Saya juga menulis posting blog tentang cara membuat APK yang tidak ditandatangani dengan Gradle.

Jika Anda memindahkan proyek Anda dari IDE lain dan tidak ingin mengkompilasi ulang , Anda mungkin menemukan file APK Anda yang sudah dibangun di IDE yang Anda pindahkan dari:

  • Jika Anda membuat Proyek dengan Android Studio, file APK akan ditemukan di ProjectName/ProjectName/build/apk/...

  • Mengimpor proyek dari eclipse: File harus di direktori yang sama. Pergi ke Project- Show in Explorer. Di sana Anda harus menemukan folder tempat di mana file APK Anda berada.

  • Diimpor dari IntelliJ, lokasinya akan menjadi ProjectName/out/production/...

Catatan tambahan: Seperti yang disebutkan Chris Stratton dalam komentarnya:

Secara teknis, yang Anda inginkan adalah APK yang ditandatangani dengan kunci debug. APK yang sebenarnya tidak ditandatangani akan ditolak oleh perangkat.

Kapten
sumber
1
Ya saya mengimpor proyek dari eclipse. Tapi saya kasus folder bin tidak disentuh oleh Android Studio. Dengan sedikit pencarian saya menemukannya sendiri. Dalam kasus saya .apk terletak di "projectname / out / production / projectname /"
klange
Ini seharusnya hanya dalam kasus jika Anda beralih dari IntelliJ
bpoiss
9
Saya menghasilkan proyek secara langsung dengan Studio tetapi tidak ada folder bernama "bin" di salah satu folder proyek. Dan dalam folder "build" hanya ada dua folder yaitu "res" dan "source" dan tidak ada folder "bin". bisakah Anda menyarankan saya sesuatu sekarang?
Himanshu Aggarwal
25
Click the dropdown menu in the toolbar at the topIni sangat umum. Apa menu dropdown? Toolbar apa?
dthree
3
@tiga, Anda dapat mengklik "Jalankan" di bilah menu atas, dan pilih "Edit Konfigurasi" dari menu dropdown
Gema Megantara
226

Menurut Build Unsigned APK with Gradle Anda cukup membangun aplikasi Anda dengan gradle. Untuk melakukan itu:

  1. klik pada menu drop down pada bilah alat di bagian atas (biasanya dengan ikon android dan nama aplikasi Anda)
  2. Pilih Edit configurations
  3. klik tanda plus di sudut kiri atas atau tekan alt+insert
  4. Pilih Gradle
  5. pilih modul Anda sebagai Gradle project
  6. di Tasks:enterassemble
  7. tekan OK
  8. tekan mainkan

Setelah itu Anda akan menemukan 'apk' yang tidak ditandai di direktori ProjectName\app\build\outputs\apk

marcin
sumber
1
+ edit build.gradle dengan android {lintOptions {checkReleaseBuilds false abortOnError false} [....]} dan berhasil! terima kasih
Steffi
Terima kasih, marcin ... Berhasil .. Satu hal yang perlu diperhatikan adalah saya tidak dapat menemukan folder "keluaran / apk" di Android Studio .. Hanya muncul di sistem file ..
Govind
Tugas 'assemble' tidak ditemukan di proyek root 'bin'.
nVentimiglia
Suara ke-2. Ini harus menjadi Jawaban yang Benar. Saya memiliki masalah ini pada instalasi studio android yang bersih dengan impor proyek. Anda harus melalui pengaturan manual ini untuk mendapatkan file apk dari build.
rickfoosusa
Ini bekerja di 1.5.1, tetapi sebenarnya membangun seluruh proyek apks bahkan jika satu modul telah dipilih.
sandrstar
94

Cara termudah, saya kira:

  • Buka tab Gradle di sisi kanan
  • Klik dua kali YourProject /: app / assemble (atau assembleDebug)
  • Anda akan menemukan apk di sini
    ... / YourProject / app / build / outputs / apk / app-debug.apk

tangkapan layar

Andrey
sumber
1
Terima kasih, jauh lebih sederhana daripada jawaban yang diterima, dan memungkinkan untuk tidak membangun apk di setiap proses
Irhala
42

pergi saja ke BUILD-> Build APK dan selesai

Aakash Bansal
sumber
8
+1. Metode yang SANGAT sederhana. BTW, Anda dapat menemukan APK yang dihasilkan diAndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix
sesederhana itu, terima kasih banyak, itu berhasil, hargai itu.
Zeyad
23

Langkah 1 Buka studio android. Build -> Generate Signed APK…. sekarang klik "Generate Signed APK".

masukkan deskripsi gambar di sini

Langkah 2

masukkan deskripsi gambar di sini

Klik Buat baru.

Langkah 3

Isi detailnya dan klik ok. masukkan deskripsi gambar di sini

Rincian kunci jks, Ini akan kembali ke jendela sebelumnya.

masukkan deskripsi gambar di sini

Klik Berikutnya, dan berikan kata sandi yang Anda simpan di kunci.

Langkah 4

masukkan deskripsi gambar di sini

Sekarang klik Selesai dan tunggu untuk menyelesaikan proses pembangunan.

masukkan deskripsi gambar di sini

Sekarang apk berhasil dibuat. Klik tampilkan di Explorer.

masukkan deskripsi gambar di sini

Jika Anda memerlukan detail lebih lanjut, silakan kunjungi dan periksa demo langsung http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs

Nirmal Dhara
sumber
3
Pertanyaan meminta apk yang tidak ditandatangani
ravelinx
18

Di Android Studio:

  1. Membangun

  2. Build APK

  3. Tunggu dan pergi ke lokasi yang ditampilkan di jendela sembulan. Di sisi kanan bawah

masukkan deskripsi gambar di sini

Andrii Kovalchuk
sumber
14

Ya, dimungkinkan untuk membuat .apk unsigned dengan Android Studio!

Sorot Proyek di paket explorer atau kolom proyek Anda, dan kemudian File- Project Structure- Artifacts- +- Android Application- From module 'your app'dan kemudian Anda dapat mengubah lokasi dan beberapa opsi lainnya. Saya mengaktifkan build on make, hanya untuk memudahkan.

schott12521
sumber
itu muncul pesan "Kami akan menyediakan UI untuk mengkonfigurasi pengaturan proyek nanti. Sampai saat itu, silakan secara manual mengedit file build.gradle Anda." Sekarang apa yang harus saya lakukan?
Himanshu Aggarwal
8
dan bagaimana jika saya tidak memiliki "Artefak" di sana?
tupai
Tekan tanda tambah di kiri atas dan Anda bisa masuk ke Aplikasi Android
CACuzcatlan
jetbrains.com/idea/webhelp/artifacts.html apa gunanya menggunakan artefak? Saya pikir itu untuk menghasilkan apk apk debug yang tidak ditandatangani, dll tetapi tampaknya Anda hanya dapat pergi ke folder build / apk untuk mendapatkan apk yang tidak ditandatangani selama Anda menjalankan assemblerelease dari menu gradle (setidaknya di intellij IDE). Saya baru saja mengkonfigurasi sebuah artefak tapi saya mengalami kesulitan mencari tahu apa yang harus dilakukan dengan itu. Dapatkah seseorang tolong bantu menjelaskan perbedaannya dan gunakan atau arahkan saya ke arah yang benar?
cjayem13
@ cjayem13 Beberapa proyek tidak menggunakan Gradle.
Marc Plano-Lesay
11

Dengan Android Studio 2.2.3 di OSX, saya hanya menggunakan menu paling atas:

Build > Build APK

Itu membuka Finder dengan .apkfile. Ini tidak akan menghasilkan APK yang ditandatangani. Anda dapat memilih Generate Signed APKdari menu yang sama jika diperlukan.

pascal
sumber
Saya mencoba membuat APK yang ditandatangani tetapi meminta jalur penyimpanan kunci. Apa yang seharusnya disediakan di sana?
codeinprogress
11
Build -> Build APK     //unsigned app


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

AndroidStudio 3.4


Setelah Grade Build Runningselesai, Anda akan melihat notifikasi di sudut kanan bawah seperti.

Klik locatedan Anda akan melihat APK debuggable Anda

Phan Van Linh
sumber
10

Cukup buka Aplikasi Anda \ app \ build \ outputs apk apk

dan salin ke telepon dan instal app-debug.apk

WhiteWolfza
sumber
1
apakah benar-benar perlu untuk menyalin kedua file?
Vahid Ghadiri
4

Pekerjaan berikut untuk saya:

Tetap ikuti pengaturan kosong jika Anda telah membuat di build.gradle.

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

dan pilih Gradle Task dari jendela Editor Anda. Ini akan menampilkan daftar semua rasa jika Anda telah membuat.

masukkan deskripsi gambar di sini

Kode
sumber
3

--- Buat config baru di SignConfigs

unsigned {
        //do not sign
    }

--- Buat tipe build di buildTypes

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Pergi untuk membuat varian dan memilih standar yang tidak ditandatangani. Bangun proyek.

--- Buka "outputs / apk" dan cari "XXX-unsigned.apk". Untuk memeriksa apakah tidak ditandatangani, coba pasang ke perangkat - Anda akan gagal.

hiu
sumber
Ini tidak bekerja. Anda perlu mendefinisikan signinigConfig sedikit berbeda (diambil dari stackoverflow.com/a/18121401/624109 )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
Muzikant
1

Sekarang di Android Studio v1.1.0 seharusnya:

  1. pilih Run>Run <your app>
  2. cari file .apk di <your app>\build\outputs\apk
John_J
sumber
Saya menggunakan 1.2.1.1 tetapi pendekatan Anda tidak berhasil. Saya harus membuat Majelis Gradle!
programmer
0

Studio Android juga membuat file apk pada setiap kali kompilasi program, cukup buka folder ruang kerja Anda dan temukan aplikasi-> build-> outputs-> maka Anda dapat melihat file apk.

pengguna5649834
sumber
0

Anda dapat mengklik dropdown di dekat tombol run pada toolbar,

  1. Pilih "Edit Konfigurasi"
  2. Klik "+"
  3. Pilih "Gradle"
  4. Pilih modul Anda sebagai proyek Gradle
  5. Dalam Tugas: masukkan assemble

Sekarang tekan ok,

yang perlu Anda lakukan sekarang adalah memilih konfigurasi Anda dari dropdown dan tekan tombol run. Itu akan memakan waktu. Apk unsigned Anda sekarang berada di

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

Saya menyelesaikannya!

Pertama-tama, Anda harus menambahkan ini:

defaultConfig { 
 multiDexEnabled true
}

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

Setelah itu, Anda harus mengeklik Bangun di bilah atas Android Studio:

Build > Build Bundle (APK)> Build APK (Build)

Akhirnya, Anda memiliki file app-debug.apk di:

app> build> outputs> apk> debug> app-debug.apk

Catatan : File apk, debug, app-debug.apk dibuat secara otomatis dalam file output oleh Android Studio.

canerkaseler
sumber
0

Langkah-langkah untuk membuat APK yang tidak ditandatangani

Catatan: Secara teknis, yang Anda inginkan adalah APK yang ditandatangani dengan kunci debug. APK yang sebenarnya tidak ditandatangani akan ditolak oleh perangkat. Jadi, Unsigned APK akan memberikan kesalahan jika Anda memasang di perangkat.

Lakshay Sharma
sumber
saya mendapatkan kesalahannya 'Tidak dapat mengatur proses direktori kerja ke' C: \ Users \ marad \ .gradle \ daemon \ 5.2.1 \ Aplikasi Saya ': tidak dapat mengatur direktori saat ini (errno 2)'
ass-king beberapa pertanyaan
0

Untuk APK yang tidak ditandatangani: Cukup setel null penandatanganan. Ini akan memberi Anda appName-debug-unsigned.apk

debug {
     signingConfig null
}

Dan membangun dari menu Bangun. Nikmati

Untuk APK yang ditandatangani:

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

file keystore.properties

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