मुझे एक नया एप्लिकेशन अपलोड करना है, यह सिर्फ डिज़ाइन है जो थोड़ा अलग है। कल मैंने आवेदन पर हस्ताक्षर करने के लिए कीस्टोर फाइल तैयार की। क्या मैं उसी का उपयोग कर सकता हूं?
मुझे एक नया एप्लिकेशन अपलोड करना है, यह सिर्फ डिज़ाइन है जो थोड़ा अलग है। कल मैंने आवेदन पर हस्ताक्षर करने के लिए कीस्टोर फाइल तैयार की। क्या मैं उसी का उपयोग कर सकता हूं?
जवाबों:
आप keystore
किसी भी संख्या में अनुप्रयोगों के लिए इसका उपयोग कर सकते हैं ।
कोई नया कीस्टार उत्पन्न करने की आवश्यकता नहीं है।
मैं अब तक सर्वसम्मति के जवाब के लिए एक काउंटर तर्क दूंगा।
मैं मानता हूं कि ज्यादातर ऐप लेखकों के लिए, आपके ऐप्स के बीच एक ही कीस्टॉर / सर्टिफिकेट / पासवर्ड साझा करना ठीक काम करेगा। महत्वपूर्ण बात यह है कि " अपने अनुप्रयोगों के अपेक्षित जीवनकाल में एक ही प्रमाण पत्र का उपयोग करें " ताकि ऐप खुद को अपग्रेड कर सके।
लेकिन मैं एक बहुत अच्छे कारण के बारे में सोच सकता हूं कि अलग-अलग ऐप या ऐप के परिवारों के लिए अलग कीस्टोर्स हैं। अगर आपको लगता है कि आप कभी भी किसी और को उनके लिए मूल के रूप में प्रकाशित करने के लिए एक ऐप बेचना चाहते हैं, तो आपको ऐसा करने के लिए उनके साथ एक-और-केवल कीस्टॉर और पासवर्ड साझा करना होगा। शायद एक बहुत बड़ा मुद्दा नहीं है, लेकिन आपको थोड़ी चिंता है और शायद, एक बड़े-पर्याप्त खरीदार के लिए एक उचित परिश्रम मुद्दा है।
इसके अलावा, मैं वास्तव में दस्तावेज़ में उसी तरह नहीं पढ़ता हूं जिस तरह @ol_v_er करता है। मुझे लगता है कि वर्तमान लाइन:
आपको अपने सभी एप्लिकेशन को अपने अनुप्रयोगों के अपेक्षित जीवनकाल में एक ही प्रमाण पत्र के साथ हस्ताक्षर करना चाहिए।
(ध्यान दें कि वर्तमान संस्करण में अल्पविराम की कमी है) केवल इस बात पर जोर दिया जा रहा है कि 'जीवनकाल' की सिफारिश सभी ऐप्स पर लागू होती है, न कि वास्तव में आपको अपने सभी ऐप्स के लिए एक ही प्रमाणपत्र का उपयोग करने के लिए निर्देशित करती है।
आधिकारिक दस्तावेज हमें बताता है:
सामान्य तौर पर, सभी डेवलपर्स के लिए अनुशंसित रणनीति आपके सभी अनुप्रयोगों को एक ही प्रमाण पत्र के साथ, आपके आवेदनों के अपेक्षित जीवनकाल में हस्ताक्षरित करना है। कई कारण हैं कि आपको ऐसा क्यों करना चाहिए ...
https://developer.android.com/studio/publish/app-signing.html#considerations
तो हां, अपने सभी एप्लिकेशन को एक ही प्रमाणपत्र के साथ साइन करने का प्रयास करें।
मैं यहां कुछ स्पष्टीकरण जोड़ना चाहता हूं, क्योंकि इस सवाल और जवाब ने मेरे लिए भ्रम पैदा कर दिया है। यह समझना महत्वपूर्ण है कि वास्तव में कीस्टोर क्या है।
एक कीस्टोर सार्वजनिक / निजी कुंजी जोड़ी को सुरक्षित रूप से संग्रहीत करने का एक साधन है जिसका उपयोग आपके Android एप पर हस्ताक्षर करने के लिए किया जाता है। तो हाँ, आप बिना समस्या के, कई एप्स पर हस्ताक्षर करने के लिए एक ही कीस्टोर का उपयोग कर सकते हैं । आप एक से अधिक उपनाम पर हस्ताक्षर करने के लिए एक ही उपनाम (प्रत्येक उपनाम एक प्रमाण पत्र) का उपयोग कर सकते हैं, और यह काम करेगा। हालाँकि इसके सुरक्षा निहितार्थ हैं। यदि आपके एकल उर्फ के साथ छेड़छाड़ की जाती है, तो आपके सभी ऐप्स समझौता कर चुके होंगे।
हालाँकि, यदि आप एक दिन अपने ऐप्स को अधिकार बेचने का इरादा रखते हैं, तो आपके सभी ऐप्स के लिए एक ही उपनाम का उपयोग करना एक अच्छा विचार नहीं हो सकता है। हालांकि, एक ही कीस्टोर का उपयोग करते हुए, बशर्ते आप प्रत्येक एपीके के लिए एक अलग उपनाम का उपयोग करें, जरूरी नहीं कि यह एक बुरा विकल्प हो। मुझे यकीन है कि एक तरीका है कि आप एक प्रमाणपत्र को एक कीस्टोर से दूसरे में स्थानांतरित कर सकते हैं, ताकि आप सुरक्षित रूप से अपने खरीदार को केवल उस प्रमाणपत्र के लिए आवश्यक कुंजी दे सकें।
इसे बहुत स्पष्ट करने के लिए, एक कीस्टोर बस है, जो किज़ के लिए स्टोरेज माध्यम है। यह एपीके साइन करने की प्रक्रिया में कोई वास्तविक भूमिका नहीं निभाता है, लेकिन केवल उन कुंजियों को संग्रहीत करने का कार्य करता है जो वास्तव में एपीके पर हस्ताक्षर करने के लिए उपयोग किए जाते हैं।
संदर्भ:
कीस्टोर, सर्टिफिकेट और उपनाम से समझना
https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
बेशक! आप जितनी बार चाहें उतनी ही कीस्टॉर फाइल का उपयोग कर सकते हैं। आपके द्वारा विकसित सभी एप्लिकेशनों के लिए एक ही कीस्टोर फ़ाइल का उपयोग करना हमेशा बेहतर होता है। यदि आप एप्लिकेशन को अपडेट या संशोधित करना चाहते हैं तो यह मदद करेगा। उस समय आपको उसी कुंजी के साथ अपने आवेदन पर हस्ताक्षर करने की आवश्यकता होती है।
मैं एक ही प्रमाण पत्र (कीस्टोर) का उपयोग करके अपने सभी ऐप पर हस्ताक्षर करता हूं। यह एक फायदा देता है अगर मैं अपना दिमाग बदल दूं और चाहता हूं कि मेरे ऐप अपना डेटा साझा करें।
जैसा कि आप जानते होंगे कि एंड्रॉइड यूआईडी के साथ प्रत्येक ऐप की पहचान करता है। यदि आपके सभी एप्लिकेशन एक ही प्रमाण पत्र द्वारा हस्ताक्षरित हैं, तो आप एक ही उपयोगकर्ता आईडी को एक से अधिक ऐप असाइन करने के लिए एंड्रॉइड से अनुरोध कर सकते हैं और उन्हें एक ही प्रक्रिया में चला सकते हैं और डेटा साझा कर सकते हैं।
एंड्रॉइड डॉक्टर एंड्रॉइड से: shareUserId
एंड्रॉयड: sharedUserId
एक लिनक्स उपयोगकर्ता आईडी का नाम जो अन्य अनुप्रयोगों के साथ साझा किया जाएगा। डिफ़ॉल्ट रूप से, एंड्रॉइड प्रत्येक एप्लिकेशन को अपनी विशिष्ट उपयोगकर्ता आईडी प्रदान करता है। हालांकि, यदि यह विशेषता दो या अधिक अनुप्रयोगों के लिए समान मान पर सेट है, तो वे सभी एक ही आईडी साझा करेंगे - बशर्ते कि वे एक ही प्रमाण पत्र द्वारा भी हस्ताक्षरित हों। एक ही उपयोगकर्ता आईडी के साथ आवेदन एक दूसरे के डेटा तक पहुंच सकते हैं और, यदि वांछित है, तो उसी प्रक्रिया में चलाएं
ताज़ा अपडेट
यदि आप Google द्वारा ऐप साइनिंग में नामांकन करना चाहते हैं, तो आपको अपने APK या बंडल पर हस्ताक्षर करने के लिए नई भिन्न कुंजी का उपयोग करना होगा अन्यथा Google कंसोल अपलोड करने के बाद आपको त्रुटि संदेश मिलेगा
आपने एक एपीके या एंड्रॉइड ऐप बंडल अपलोड किया है जो एक कुंजी के साथ हस्ताक्षरित है जिसका उपयोग उपयोगकर्ताओं को वितरित किए जाने वाले APK पर हस्ताक्षर करने के लिए भी किया जाता है। क्योंकि आप Google Play द्वारा ऐप साइनिंग में नामांकित हैं, आपको अपलोड करने से पहले एक नई कुंजी के साथ अपने एपीके या एंड्रॉइड ऐप बंडल पर हस्ताक्षर करना चाहिए