Android स्टूडियो के साथ अहस्ताक्षरित एपीके फ़ाइल बनाएँ


271

मैं Android डेवलपर टूल के साथ एक Android ऐप विकसित कर रहा हूं। अब मैंने नए एंड्रॉइड स्टूडियो की कोशिश की, मेरे स्मार्टफोन को पीसी से कनेक्ट करने और एंड्रॉइड स्टूडियो में सीधे प्रोग्राम चलाने पर सब कुछ ठीक चलता है। लेकिन अब मैं अन्य स्मार्टफोन के साथ कार्यक्रम को अपने पीसी से कनेक्ट किए बिना परीक्षण करना चाहता हूं।

हर बार जब आप प्रोग्राम को संकलित करते हैं तो ADT .apk फाइल को "प्रोजेक्टनेम / बिन" के तहत बनाता है। मैं इसे उस समय कैसे देखता हूं जब Android Studio ऐसा नहीं करता है।

तो मेरा प्रश्न क्या एंड्रॉइड स्टूडियो के साथ एक अहस्ताक्षरित .apk फ़ाइल बनाना संभव है?


10
तकनीकी रूप से, आप जो चाहते हैं वह एक डीबग कुंजी के साथ हस्ताक्षरित एक एपीके है। एक एपीके जो वास्तव में अहस्ताक्षरित है, डिवाइस द्वारा अस्वीकार कर दिया जाएगा।
क्रिस स्ट्रैटन

FYI करें हमें हमेशा @Nirmal Dhara द्वारा उत्तर के रूप में हस्ताक्षरित एप्लिकेशन को निर्यात करना पसंद करना चाहिए। यह ज्यादा सुरक्षित है।
मुकुंद

2
@ChrisStratton क्या इसे हमेशा मना किया जाएगा?
श्रीकांत करुमनघाट

मैं इसे इस समाधान के साथ हल करता हूं: stackoverflow.com/a/56201481/8471798
canerkaseler

जवाबों:


325

मैं आपको ग्रेड के साथ अपनी एपीके फ़ाइल बनाने की सलाह दूंगा:

  • शीर्ष पर स्थित टूलबार में ड्रॉपडाउन मेनू पर क्लिक करें (ओपन 'रन रन / डीबग कॉन्फ़िगरेशन संपादित करें')
  • "कॉन्फ़िगरेशन संपादित करें" चुनें
  • "+" पर क्लिक करें
  • "ग्रेडल" चुनें
  • अपने मॉड्यूल को ग्रैडल प्रोजेक्ट के रूप में चुनें
  • कार्य में: दर्ज करें assemble
  • प्रेस चलाएँ

आपका अहस्ताक्षरित APK अब में स्थित है

ProjectName\app\build\outputs\apk

ग्रैडल का उपयोग कैसे करें के बारे में विस्तृत जानकारी के लिए, यह ट्यूटोरियल जाना अच्छा है: एंड्रॉइड स्टूडियो में ग्रैडल के साथ बिल्डिंग । मैंने एक ब्लॉग पोस्ट भी लिखा था कि ग्रैडल के साथ अहस्ताक्षरित एपीके कैसे बनाया जाए।

यदि आप अपनी परियोजना को अन्य IDE से स्थानांतरित करते हैं और पुन: प्राप्त नहीं करना चाहते हैं , तो आप अपनी एपीके फ़ाइल पा सकते हैं जो पहले से ही आपके द्वारा बनाए गए आईडीई में बनाई गई थी:

  • यदि आपने Android Studio के साथ प्रोजेक्ट जेनरेट किया है, तो एपीके फ़ाइल मिल जाएगी ProjectName/ProjectName/build/apk/...

  • ग्रहण से परियोजना का आयात किया: फ़ाइल उसी निर्देशिका में होनी चाहिए। Project- जाओ Show in Explorer। वहां आपको बिन फ़ोल्डर ढूंढना चाहिए जहां आपकी एपीके फ़ाइल स्थित है।

  • IntelliJ से आयातित, स्थान होगा ProjectName/out/production/...

साइड नोट: जैसा कि क्रिस स्ट्रैटन ने अपनी टिप्पणी में उल्लेख किया है:

तकनीकी रूप से, आप जो चाहते हैं वह एक डीबग कुंजी के साथ हस्ताक्षरित एक एपीके है। एक एपीके जो वास्तव में अहस्ताक्षरित है, डिवाइस द्वारा अस्वीकार कर दिया जाएगा।


1
हाँ, मैंने ग्रहण से परियोजना का आयात किया। लेकिन मैं अपना मामला बिन फ़ोल्डर Android स्टूडियो द्वारा छुआ नहीं है। थोड़ी खोज के साथ मैंने इसे अपने स्वयं के द्वारा पाया। मेरे मामले में .apk "प्रोजेक्टनेम / आउट / प्रोडक्शन /
प्रोजेक्टनेम

यह केवल उस स्थिति में होना चाहिए जब आप
इंटेलीज

9
मैं सीधे स्टूडियो के साथ प्रोजेक्ट उत्पन्न कर रहा हूं, लेकिन प्रोजेक्ट के किसी भी फ़ोल्डर में "बिन" नाम का कोई फ़ोल्डर नहीं है। और "बिल्ड" फ़ोल्डर में केवल दो फ़ोल्डर हैं, "रिस" और "स्रोत" और कोई "बिन" फ़ोल्डर नहीं। क्या अब आप मुझे कुछ सुझा सकते हैं?
हिमांशु अग्रवाल

25
Click the dropdown menu in the toolbar at the topयह तो सामान्य है। क्या ड्रॉपडाउन मेनू? क्या टूलबार?
dthree

3
@dthree आप शीर्ष मेनू बार पर "रन" पर क्लिक कर सकते हैं, और ड्रॉपडाउन से "एडिट कॉन्फिगरेशन" का चयन कर सकते हैं
गीमा मेग्रतारा

226

बिल्ड अनसाइन्टेड एपीके विथ ग्रैडल के अनुसार आप बस अपने एप्लिकेशन को ग्रेडेल के साथ बना सकते हैं। ऐसा करने के क्रम में:

  1. शीर्ष पर स्थित टूलबार पर ड्रॉप डाउन मेनू पर क्लिक करें (आमतौर पर एंड्रॉइड आइकन और आपके आवेदन का नाम)
  2. चुनते हैं Edit configurations
  3. ऊपरी बाएँ कोने पर प्लस चिह्न पर क्लिक करें या दबाएँ alt+insert
  4. चुनते हैं Gradle
  5. अपना मॉड्यूल चुनें Gradle project
  6. में Tasks:प्रवेशassemble
  7. दबाएँ OK
  8. दबाएं खेलें

उसके बाद आपको निर्देशिका में अपना अहस्ताक्षरित 'एपीके' ढूंढना चाहिए ProjectName\app\build\outputs\apk


1
+ android {lintOptions {checkReleaseBuilds false abortOnError false} [....]} के साथ build.gradle को संपादित करें और यह काम करता है! धन्यवाद
स्टेफी

धन्यवाद marcin ... यह काम किया .. ध्यान देने वाली एक बात यह है कि मुझे एंड्रॉइड स्टूडियो में "आउटपुट / एपीके" फ़ोल्डर नहीं मिल सका है .. यह केवल फ़ाइल सिस्टम में दिखाई दिया ..
गोविंद

टास्क 'असेंबल' रूट प्रोजेक्ट 'बिन' में नहीं मिला।
nVentimiglia

2 मत। यह सही उत्तर होना चाहिए। मुझे प्रॉजेक्ट आयात के साथ एक साफ एंड्रॉइड स्टूडियो इंस्टाल पर यह समस्या थी। बिल्ड से कोई भी एपीके फाइल प्राप्त करने के लिए आपको इस मैनुअल सेटअप से गुजरना होगा।
रिकोफोसुसा

यह 1.5.1 में काम करता है, लेकिन वास्तव में पूरे प्रोजेक्ट एप का निर्माण करता है, भले ही एकल मॉड्यूल का चयन किया गया हो।
सैंड्रस्टार

94

सबसे आसान तरीका है, मुझे लगता है:

  • दाईं ओर स्थित ग्रेड टैब खोलें
  • डबल क्लिक करें YourProject /: ऐप / असेंबल (या असेंबलडबग)
  • आपको यहां
    एपीके मिलेगा ... / YourProject / ऐप / बिल्ड / आउटपुट / apk / ऐप-डीबग.पेक

स्क्रीनशॉट


1
धन्यवाद, स्वीकृत उत्तर की तुलना में बहुत सरल है, और प्रत्येक रन पर
एपीके

42

बस BUILD-> बिल्ड एपीके पर जाएं और यह पूरा हो गया है


8
+1। एक बहुत ही सरल विधि। BTW, आप उत्पन्न कर सकते हैं APK परAndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix

उस के रूप में सरल, बहुत बहुत धन्यवाद, यह काम किया, इसकी सराहना करते हैं।
Zeyad

23

चरण 1 ओपन एंड्रॉयड स्टूडियो। बिल्ड -> हस्ताक्षरित जनरेट APK ...। अब “Generate Signed APK” पर क्लिक करें।

यहां छवि विवरण दर्ज करें

चरण 2

यहां छवि विवरण दर्ज करें

नया बनाएँ पर क्लिक करें।

चरण 3

विवरण भरें और ठीक पर क्लिक करें। यहां छवि विवरण दर्ज करें

jks प्रमुख विवरण, यह पिछली विंडो पर वापस जाएगा।

यहां छवि विवरण दर्ज करें

अगला क्लिक करें, और वह पासवर्ड दें जो आपने कुंजी में संग्रहीत किया था।

चरण 4

यहां छवि विवरण दर्ज करें

अब समाप्त पर क्लिक करें और निर्माण प्रक्रिया को पूरा करने के लिए प्रतीक्षा करें।

यहां छवि विवरण दर्ज करें

अब APK सफलतापूर्वक उत्पन्न हुई। एक्सप्लोरर में शो पर क्लिक करें।

यहां छवि विवरण दर्ज करें

यदि आपको अधिक जानकारी की आवश्यकता है तो कृपया लाइव डेमो देखें और देखें http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs


3
अहस्ताक्षरित APK के लिए प्रश्न पूछता है
ravelinx

18

एंड्रॉइड स्टूडियो में:

  1. बिल्ड

  2. एपीके बनाएँ

  3. प्रतीक्षा करें और पॉप-अप विंडो में दिखाए गए स्थान पर जाएं। दाईं ओर नीचे

यहां छवि विवरण दर्ज करें


14

हां, एंड्रॉइड स्टूडियो के साथ अहस्ताक्षरित .apk बनाना संभव है!

अपने पैकेज एक्सप्लोरर या प्रोजेक्ट कॉलम में प्रोजेक्ट को हाइलाइट करें, और फिर File- Project Structure- Artifacts- +- Android Application- From module 'your app'और फिर आप स्थान और कुछ अन्य विकल्प बदल सकते हैं। मैं निर्माण को सक्षम बनाता हूं, बस आसानी के लिए।


यह संदेश पॉप अप कर रहा है "हम बाद में प्रोजेक्ट सेटिंग्स कॉन्फ़िगर करने के लिए एक यूआई प्रदान करेंगे। तब तक, कृपया मैन्युअल रूप से अपनी बिल्ड.ग्रेड फ़ाइल (एस) को संपादित करें।" अब मुझे क्या करना चाहिए?
हिमांशु अग्रवाल

8
और क्या होगा अगर मेरे पास वहां कोई "कलाकृतियां" नहीं हैं?
गिलहरी

प्लस चिह्न को ऊपर बाईं ओर मारो और आप Android अनुप्रयोग
CACuzcatlan

jetbrains.com/idea/webhelp/artifacts.html कलाकृतियों के उपयोग की बात क्या है? मैंने सोचा था कि यह एक अहस्ताक्षरित apk डीबग APK उत्पन्न करने के लिए था, आदि, लेकिन ऐसा लगता है जैसे आप केवल बिल्ड / एपीके फ़ोल्डर में जा सकते हैं अहस्ताक्षरित APK पाने के लिए जब तक आप असेंबल मेनू (कम से कम इंटेलीजेंट ईईई) से असेंबलीराइज चलाते हैं। मैं सिर्फ एक विरूपण साक्ष्य को कॉन्फ़िगर करता हूं, लेकिन मुझे यह पता लगाने में परेशानी हो रही है कि वास्तव में इसके साथ क्या करना है। क्या कोई कृपया अंतर को स्पष्ट करने और मुझे सही दिशा में उपयोग या इंगित करने में मदद कर सकता है?
cjayem13

@ cjayem13 कुछ प्रोजेक्ट ग्रैडल का उपयोग नहीं करते हैं।
मार्क प्लानो-लेसे

11

ओएसएक्स पर एंड्रॉइड स्टूडियो 2.2.3 के साथ मैंने सिर्फ शीर्ष मेनू का उपयोग किया:

Build > Build APK

यह .apkफ़ाइल के साथ खोजक खोला । यह एक हस्ताक्षरित APK उत्पन्न नहीं करेगा। Generate Signed APKयदि आवश्यक हो तो आप उसी मेनू से चयन कर सकते हैं ।


मैंने एक हस्ताक्षरित एपीके उत्पन्न करने की कोशिश की, लेकिन यह एक कुंजी स्टोर पथ के लिए पूछ रहा है। क्या माना जाता है कि वहाँ प्रदान किया जाएगा?
कोडिनप्रोग्रेस


11

AndroidStudio 3.4


Grade Build Runningपूरा होने के बाद , आपको नीचे-दाएं कोने पर अधिसूचना दिखाई देगी जैसे।

पर क्लिक करें locateऔर आपको अपना डिबेटेबल एपीके दिखाई देगा


10

बस अपने एप्लिकेशन \ एप \ बिल्ड \ आउटपुट \ एपीके पर जाएं

और दोनों को फ़ोन पर कॉपी करें और ऐप-डीबग करें


1
क्या वास्तव में दोनों फाइलों को कॉपी करना आवश्यक है?
वाहिद ग़दीरी

4

मेरे लिए निम्नलिखित कार्य:

यदि आपने build.gradle में बनाया है, तो रिक्त सेटिंग का पालन करते रहें।

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

और अपने संपादक विंडो से ग्रैडल टास्क चुनें। यदि आपने बनाया है तो यह सभी स्वादों की सूची दिखाएगा।

यहां छवि विवरण दर्ज करें


3

--- SignConfigs में नया कॉन्फिगर बनाएं

unsigned {
        //do not sign
    }

--- buildTypes में बिल्ड टाइप बनाएं

unsigned {
        versionNameSuffix '-unsigned'
    }

--- वेरिएंट का निर्माण करने के लिए जाओ और अहस्ताक्षरित मानक चुना। प्रोजेक्ट बनाएं।

--- "आउटपुट / एपीके" पर जाएं और "XXX-unsigned.apk" ढूंढें। यह जांचने के लिए कि क्या यह अहस्ताक्षरित है कि इसे डिवाइस पर स्थापित करने का प्रयास करें - आप विफल हो जाएंगे।


यह काम नहीं करता। आपको साइनइनिगकॉन्फिग को थोड़ा अलग परिभाषित करने की आवश्यकता है ( stackoverflow.com/a/18121401/624109 से लिया गया )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
मुज़िकांत

1

अब एंड्रॉइड स्टूडियो में v1.1.0 होना चाहिए:

  1. का चयन करें Run>Run <your app>
  2. फ़ाइल में .apk फ़ाइल खोजें <your app>\build\outputs\apk

मैं 1.2.1.1 का उपयोग कर रहा हूं लेकिन आपका दृष्टिकोण काम नहीं करता है। मुझे ग्रैडल असेंबली बनानी है!
प्रोग्रामर

0

एंड्रॉइड स्टूडियो हर बार प्रोग्राम को संकलित करने के लिए एपीके फ़ाइल भी बनाते हैं, बस अपने कार्यक्षेत्र फ़ोल्डर में जाएं और ऐप ढूंढें-> बिल्ड-> आउटपुट-> फिर आप एपीके फ़ाइल देख सकते हैं।


0

आप टूलबार पर रन बटन के पास ड्रॉपडाउन पर क्लिक कर सकते हैं,

  1. "कॉन्फ़िगरेशन संपादित करें" चुनें
  2. "+" पर क्लिक करें
  3. "ग्रेडल" चुनें
  4. ग्रेड मॉड्यूल प्रोजेक्ट के रूप में अपना मॉड्यूल चुनें
  5. कार्य में: असेंबल दर्ज करें

अब ओके दबाएं,

अब आपको बस इतना करना है कि ड्रॉपडाउन और प्रेस रन बटन से अपने कॉन्फ़िगरेशन का चयन करें। इसमें थोड़ा वक्त लगेगा। आपका अहस्ताक्षरित APK अब में स्थित है

Project\app\build\outputs\apk

0

मैं इसे हल!

सबसे पहले, आपको इन्हें जोड़ना चाहिए:

defaultConfig { 
 multiDexEnabled true
}

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

इसके बाद, आपको Android स्टूडियो के शीर्ष बार में बिल्ड पर क्लिक करना चाहिए :

बिल्ड > बिल्ड बंडल (एस) / एपीके (एस)> बिल्ड एपीके (एस)

अंत में, आपके पास एक app-debug.apk फ़ाइल है:

ऐप> बिल्ड> आउटपुट> एपीके > डीबग> ऐप-डीबग.पैक

नोट : एपीके , डीबग, ऐप-डीबग.ऐप फाइलें एंड्रॉइड स्टूडियो द्वारा आउटपुट फाइल में स्वचालित रूप से बनाई गई हैं।


0

अहस्ताक्षरित APK बनाने के लिए चरण

नोट: तकनीकी रूप से, आप जो चाहते हैं वह एक डीबग कुंजी के साथ हस्ताक्षरित एक एपीके है। एक एपीके जो वास्तव में अहस्ताक्षरित है, डिवाइस द्वारा अस्वीकार कर दिया जाएगा। यदि आप डिवाइस में स्थापित करते हैं, तो अनसाइनड एपीके त्रुटि देगा।


मुझे उसकी त्रुटि मिली 'प्रोसेस वर्किंग डाइरेक्टरी को' C: \ Users \ marad \ '.gradle \ daemon \ 5.2.1 \ My Application' सेट नहीं कर सका: वर्तमान डायरेक्टरी (2 तक गलत नहीं कर सका) '
ass-

0

अहस्ताक्षरित APK के लिए: बस साइन इन करें साइन अप करें। यह आपको 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.