डिवाइस पर एंड्रॉइड ऐप बंडल स्थापित करें


116

मैंने अपना प्रोजेक्ट नए एंड्रॉइड ऐप बंडल प्रारूप का उपयोग करके बनाया है। एपीके फ़ाइलों के साथ, मैं अपने डिवाइस पर एपीके डाउनलोड कर सकता हूं, इसे खोल सकता हूं, और तुरंत एप्लिकेशन इंस्टॉल कर सकता हूं। मैंने अपने ऐप को एक बंडल (.Aab फॉर्मेट) के रूप में डाउनलोड किया और मेरा Nexus 5 एंड्रॉइड 8.1 पर चलने वाला फ़ाइल नहीं खोल सकता। क्या एपीए के रूप में उसी तरह से उपकरणों पर एएबी स्थापित करने का कोई तरीका है?


2
ऐसा लगता है कि यह एक साधारण apk से कुछ अधिक कदम लेता है: developer.android.com/guide/app-bundle/test
माइक एम।

जवाबों:


109

संक्षिप्त जवाब:

प्रत्यक्ष नहीं।

दीर्घ उत्तर:

Android App बंडल एक प्रकाशन प्रारूप है। एंड्रॉइड डिवाइस .apkको एप्लिकेशन इंस्टॉल करने के लिए फ़ाइलों की आवश्यकता होती है ।

प्

.Apk को .aab से रूपांतरण के माध्यम से किया जाता है bundletool

आप अपने ऐप के डिबगेबल बिल्ड को प्ले स्टोर पर अपलोड करने के लिए इंटरनल ऐप शेयरिंग का उपयोग कर सकते हैं और इसे परीक्षकों के साथ साझा कर सकते हैं।


किस मामले के तहत हम बिल्ड बंडल (विकल्प) का उपयोग करेंगे, न कि हस्ताक्षरित बंडल पर विचार करते हुए कि हम प्ले-स्टोर पर डिबग एप्लिकेशन प्रकाशित नहीं कर सकते
Oush

मैं मुख्य रूप से स्थानीय परीक्षण के लिए करूँगा।
कीबोर्डबोर्डर

3
बंडललेट की रिलीज़ (स्रोत फ़ाइलों के बजाय) यहाँ है: github.com/google/bundletool/releases
कारी

वर्तमान में यह गलत उत्तर है, apksफ़ाइल बनाने के लिए अन्य उत्तर देखें ।
CoolMind

1
@ericn एक ऐप का प्रारंभिक "प्रकाशन" सामान्य प्रक्रिया से गुजर रहा है। आपके द्वारा बाद में किए जा रहे किसी भी आंतरिक ऐप को समीक्षाओं द्वारा अवरुद्ध नहीं किया जाना चाहिए।
कीबोर्ड

53

डिवाइस से सीधे ऐब स्थापित करने पर, मुझे उसके लिए कोई रास्ता नहीं मिल रहा है।

लेकिन निम्नलिखित दस्तावेज़ का उपयोग करके अपनी कमांड लाइन के माध्यम से इसे स्थापित करने का एक तरीका है आप बंडलटूल के माध्यम से एक डिवाइस पर APK स्थापित कर सकते हैं

"@Albert Vila Calvo" टिप्पणी के अनुसार उन्होंने कहा कि HomeBrew उपयोग करके बंडललेट स्थापित करने के लिए brew install bundletool

अब आप ऐब फ़ाइल से एक्सट्रेक्ट एप्स को इंस्टॉल कर सकते हैं और इसे एक डिवाइस में इंस्टॉल कर सकते हैं

अगले कमांड से एपीके फाइल्स को निकालना

java -jar bundletool-all-0.3.3.jar build-apks --bundle = bundle.aab --output = app.apks --ks = my-release-key.keystore --ks-key-alias = अन्य उपनाम - -ks-पास = पारित: पासवर्ड

तर्क:

  • --bundle -> Android बंडल .aab फ़ाइल
  • --output -> उत्पन्न APK फ़ाइल के लिए गंतव्य और फ़ाइल नाम
  • --ks -> Keystore फ़ाइल का उपयोग एंड्रॉइड बंडल उत्पन्न करने के लिए किया जाता है
  • -की-की-उर्फ -> कीस्टोर फाइल के लिए उपनाम
  • --ks- पास -> उपनाम फ़ाइल के लिए पासवर्ड (पासवर्ड मान से पहले 'पास' उपसर्ग पर ध्यान दें)

फिर आपके पास एक्सटेंशन .apks के साथ एक फ़ाइल होगी इसलिए अब आपको इसे एक डिवाइस पर इंस्टॉल करने की आवश्यकता है

java -jar bundletool-all-0.6.0.jar install-apks --adb = / android-sdk / platform-tools / adb --apks = app.apks

तर्क:

  • --adb -> adb फाइल का पथ
  • --apks -> Apks फ़ाइल स्थापित करने की आवश्यकता है

25
यदि आप Mac का उपयोग करते हैं तो आप Homebrew के साथ Bundletool स्थापित कर सकते हैं brew install bundletool:। तो बस इस तरह से कमांड चलाएं:bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
अल्बर्ट विला केल्वो

3
--ks-पास = पास: पासवर्ड कीस्टोर के लिए पासवर्ड निर्दिष्ट करता है। कीफाइल उपयोग के लिए पासवर्ड निर्दिष्ट करने के लिए --key-पास = पास: पासवर्ड
smitty1

मैं उसी मुद्दे का सामना कर रहा हूं, मैंने आपके द्वारा बताए गए चरणों का पालन किया है, हालांकि, जब ऐप मेरे एंड्रॉइड डिवाइस में इंस्टॉल हो जाता है, तो मैं इसे नहीं खोल सकता (यह स्वचालित रूप से बंद हो जाता है)
18

धन्यवाद! --key-pass=pass:... आवश्यक है, लेकिन अजीब तरह से एक पासवर्ड गलत है, इसलिए मुझे इसे मैन्युअल रूप से लिखना होगा। इसके बाद ... install-apks --adb=...यह लिखते हैं: 'APK को निर्देशिका में निकाला गया है: ...', लेकिन वह फ़ोल्डर मौजूद नहीं है, और यह डिवाइस पर स्थापित नहीं होता है।
कूलमैन्ड

उदाहरण: C:\Users\Aterr\Desktop\hack>java -jar "C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar" install-apks --adb="C:\Users\Aterr\AppData\Local\Android\Sdk\platform-tools\adb.exe" --apks="C:\Users\Aterr\Desktop\hack\extractedapks.apks"
Choletski

24

आप एप्लिकेशन बंडल स्थापित नहीं कर सकता [NAME].aabक्योंकि यह प्रारूप प्रकाशित कर रहा है Android डिवाइस के लिए सीधे, लेकिन वहाँ की आवश्यकता को निकालने के लिए रास्ता है apkसे bundleऔर आप डिवाइस के लिए इसे स्थापित है, इस प्रक्रिया का पालन है

  1. यहां से बंडललेट डाउनलोड करें
  2. इसे अपने टर्मिनल में चलाएं,
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. अंतिम चरण के रूप में नाम से एक फ़ाइल उत्पन्न होगी out_bundle_archive_set.apks, बस इसे फिर से नाम दें out_bundle_archive_set.zipऔर ज़िप फ़ाइल को निकालें, फ़ोल्डर में कूदें out_bundle_archive_set > standalones, जहां आप सभी एप की सूची देखेंगे

बंडल टूल लिंक के लिए एंड्रॉइड डेवलपर्स से संदर्भ जाता है

Android डेवलपर संदर्भ


इसके लिए एक हस्ताक्षर कुंजी और पासवर्ड की आवश्यकता होती है, देखें stackoverflow.com/a/52704544/2914140 और developer.android.com/studio/command-line/bundletool
कूलमैन्ड

@ साइन इन करें साइनिंग कुंजी और पासवर्ड तब होते हैं जब आप बंडल से साइन इन किए गए एपीके के सेट का निर्माण करना चाहते हैं, और डिवाइस पर
एपीके

तीसरा चरण वास्तव में जरूरतमंद है, बहुत बहुत धन्यवाद।
धीरेन

कोई फ़ोल्डर नामांकित स्टैंडअलोन नहीं है, इसके बजाय नामांकित विभाजन है
गोपाल सिंह सिरवी

16

मैक के लिए:

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks

बस बिना किसी मुद्दे के काम किया। दिन बचा लिया!
asozcan

तीसरे कमांड टर्मिनल के बाद ऐप के लिए एक रास्ता दिखाया गया, लेकिन फोल्डर उपलब्ध नहीं है
फुरकान

1
@Furquan, वह पथ जो आपके कनेक्ट किए गए उपकरण में पथ है। कमांड आपके डिवाइस पर एपीके इंस्टॉल करता है।
बिजॉय थंगराज

6

यदि आप परीक्षण उद्देश्य के लिए अपने aab से अपने डिवाइस में एपीके स्थापित करना चाहते हैं, तो आपको कनेक्टेड डिवाइस पर इसे चलाने से पहले कॉन्फ़िगरेशन को संपादित करना होगा।

  1. कॉन्फ़िगरेशन को संपादित करने के लिए जाओ
    यहां छवि विवरण दर्ज करें
  2. डिप्लोड ड्रॉपडाउन का चयन करें और इसे "डिफॉल्ट एपीके" से "एप बंडल से एपीके" में बदलें।यहां छवि विवरण दर्ज करें
  3. परिवर्तनों को लागू करें और फिर इसे कनेक्ट किए गए डिवाइस पर चलाएं। यह बदलाव करने के बाद बिल्ड टाइम बढ़ेगा।

यह एएबी से जुड़े डिवाइस पर सीधे एक एपीके इंस्टॉल करेगा।


1
इससे मुझे एक बग को दोहराने में मदद मिली जो केवल रिलीज बिल्ड पर दिखाई देता है। AAB से इंस्टॉल होने पर बग दिखाई देता है। बहुत बहुत धन्यवाद।
सेर्लिन

बस स्पष्ट करने के लिए, मुझे लगता है कि निर्देश और स्क्रीनशॉट एंड्रॉइड स्टूडियो से हैं? [मैं Xamarin का उपयोग कर रहा हूं, Android स्टूडियो का उपयोग नहीं कर रहा हूं। मुझे लगता है कि अधिकांश डेवलपर्स एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं।]
टूलमेकरसैट

हां, निर्देश और स्क्रीनशॉट एंड्रॉइड स्टूडियो 3.6.3 से हैं।
कार्तिकेय_एम

0

नहीं, यदि आप एंड्रॉइड स्टूडियो में बिल्ड> बिल्ड एपीके ( मेनू ) का उपयोग करते हैं या अपने डिवाइस / एमुलेटर में इसे निष्पादित करते हैं, तो अन्य एप्लिकेशन के बिना आप किसी एप्लिकेशन को डिबग कर रहे हैं, उन्हें डीबग रिलीज जारी करें APK स्वचालित रूप से इंस्टॉल हो जाएगा। यदि आप दूसरों के साथ एक ऐप डिबग कर रहे हैं तो बिल्ड> जेनरेट साइन एपीके ... मेनू का उपयोग करें। यदि आप बीटा संस्करण प्रकाशित करना चाहते हैं तो Google Play Store का उपयोग करें। आपका एपीके app\build\outputs\apk\debugऔर app\releaseफ़ोल्डर्स में होगा ।



0

उपयोग करें (लिनक्स पर): cd android ./gradlew AssemblyRelease | AssemblyDebug

एक अहस्ताक्षरित APK प्रत्येक मामले के लिए (डिबग या परीक्षण के लिए) बनाया गया है

नोट: विंडोज पर, gradlew.bat के लिए gradle निष्पादन योग्य बदलें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.