android एंड्रॉइड चींटी डीबग बिल्ड के लिए मैं डीबग कीस्टोर के स्थान को कैसे निर्दिष्ट कर सकता हूं?




debugging ant (5)

डीबग .apk ( <project-name>-debug.apk ) को ant debug साथ डीबग बनाते समय स्वयं निर्मित डीबग कीस्टोर के स्थान को निर्दिष्ट करना संभव है? मैं केवल रिलीज कीस्टोर के स्थान को निर्दिष्ट करने की संभावना को देखता हूं।

मैं'android 'निर्देशिका में रखे गए एक को कॉपी किए बिना कई पीसी पर डीबग कीस्टोर साझा करना चाहता हूं। डीबग कीस्टोर उदाहरण के लिए स्रोत कोड भंडार के भीतर रह सकता है। लेकिन मुझे डीबग कीस्टोर को खोजने के लिए चींटी को बताने का एक तरीका चाहिए।

https://code.i-harness.com


आप अंतिम एपीके के हस्ताक्षर को हटा सकते हैं और फिर से साइन इन कर सकते हैं। यह सिर्फ एक डीबग बिल्ड है इसलिए ज़िपलाइन को टाला जा सकता है (कम से कम मुझे मेरे निर्माण में कोई समस्या नहीं है)।

प्रोजेक्ट में अपनी keystore को फ़ाइल deug.keystore पर कॉपी करें और ant.properties में निम्न जोड़ें

debug.key.store.password=android
debug.key.alias.password=android
debug.key.store=../debug.keystore
debug.key.alias=androiddebugkey

और अपने build.xml में निम्नलिखित जोड़ें

<target name="-post-build" if="${build.is.packaging.debug}">
    <!-- Remove the signature of the debug build, and sign it again with our own debug keystore -->
    <delete dir="tmp" includeemptydirs="true" failonerror="false" />
    <mkdir dir="tmp" />
    <unzip src="${out.final.file}" dest="tmp" />
    <delete dir="tmp/META-INF" includeemptydirs="true" verbose="true" failonerror="true" />
    <delete file="${out.final.file}" failonerror="true" />
    <zip destfile="${out.final.file}" basedir="tmp" />
    <delete dir="tmp" includeemptydirs="true" failonerror="false" /> 

    <echo level="info">Signing final DEBUG apk with a common signature...
        signapk
            input="${out.final.file}"
            output="${out.packaged.file}"
            keystore="${debug.key.store}"
            storepass="${debug.key.store.password}"
            alias="${debug.key.alias}"
            keypass="${debug.key.alias.password}"
    </echo>

    <signapk
        input="${out.final.file}"
        output="${out.packaged.file}"
        keystore="${debug.key.store}"
        storepass="${debug.key.store.password}"
        alias="${debug.key.alias}"
        keypass="${debug.key.alias.password}"/>

    <delete file="${out.final.file}" failonerror="true" />
    <move file="${out.packaged.file}" tofile="${out.final.file}" failonerror="true" />

</target>

आप इन गुणों के साथ उपयोग करने के लिए कीस्टोर निर्दिष्ट करने में सक्षम होना चाहिए

key.store=/path/to/key.keystore
key.alias=alias
key.store.password=pass
key.alias.password=pass

बस संपत्ति को चींटी में पास करें।

[संपादित करें] दस्तावेज़ों से http://developer.android.com/guide/publishing/app-signing.html#setup

एंड्रॉइड बिल्ड टूल्स एक डीबग साइनिंग मोड प्रदान करते हैं जो आपके एप्लिकेशन को विकसित और डिबग करना आसान बनाता है, जबकि अभी भी अपने .apk पर हस्ताक्षर करने के लिए एंड्रॉइड सिस्टम आवश्यकता को पूरा करता है। अपने ऐप को बनाने के लिए डीबग मोड का उपयोग करते समय, एसडीके टूल्स स्वचालित रूप से डीबग कीस्टोर और कुंजी बनाने के लिए कीटोल का आह्वान करते हैं। यह डीबग कुंजी तब स्वचालित रूप से .apk पर हस्ताक्षर करने के लिए उपयोग की जाती है, इसलिए आपको अपनी कुंजी के साथ पैकेज पर हस्ताक्षर करने की आवश्यकता नहीं है।

एसडीके उपकरण पूर्वनिर्धारित नाम / पासवर्ड के साथ डीबग कीस्टोर / कुंजी बनाते हैं:

  • कीस्टोर नाम: "debug.keystore"
  • कीस्टोर पासवर्ड: "एंड्रॉइड"
  • मुख्य उपनाम: "androiddebugkey"
  • मुख्य पासवर्ड: "एंड्रॉइड"
  • सीएन: "सीएन = एंड्रॉइड डीबग, ओ = एंड्रॉइड, सी = यूएस"

यदि आवश्यक हो, तो आप डीबग कीस्टोर / कुंजी का स्थान / नाम बदल सकते हैं या उपयोग करने के लिए कस्टम डीबग कीस्टोर / कुंजी की आपूर्ति कर सकते हैं । हालांकि, किसी भी कस्टम डीबग कीस्टोर / कुंजी को उसी कुंजीस्टोर / कुंजी नाम और पासवर्ड का उपयोग डिफ़ॉल्ट डीबग कुंजी (ऊपर वर्णित अनुसार) के रूप में करना चाहिए। (ग्रहण / एडीटी में ऐसा करने के लिए, विंडोज> वरीयताएँ> एंड्रॉइड> बिल्ड पर जाएं।)


जहां तक ​​मैं कह सकता हूं, ऐसा करने के लिए आपको "-do-debug" लक्ष्य को ओवरराइड करने की आवश्यकता है। मैं जानना चाहता हूं कि क्या एक और अधिक सुरुचिपूर्ण तरीका है। मैंने इसे अपने build.xml में जोड़ा

<property name="build.is.signing.debug" value="false"/>
<target name="-do-debug" depends="-set-debug-mode, -debug-obfuscation-check, -package, -post-package">
    <!-- only create apk if *not* a library project -->
    <do-only-if-not-library elseText="Library project: do not create apk..." >
        <sequential>
            <property name="out.unaligned.file" location="${out.absolute.dir}/${ant.project.name}-debug-unaligned.apk" />

            <!-- Signs the APK -->
            <echo>Signing final apk...</echo>
            <signjar
                    jar="${out.packaged.file}"
                    signedjar="${out.unaligned.file}"
                    keystore="${key.store}"
                    storepass="${key.store.password}"
                    alias="${key.alias}"
                    keypass="${key.alias.password}"
                    verbose="${verbose}" />

            <!-- Zip aligns the APK -->
            <zipalign-helper
                    in.package="${out.unaligned.file}"
                    out.package="${out.final.file}" />
            <echo>Debug Package: ${out.final.file}</echo>
        </sequential>
    </do-only-if-not-library>
    <record-build-info />
</target>
<import file="${sdk.dir}/tools/ant/build.xml" />

जहां तक ​​मैंने देखा है अब तक कोई मौजूदा समाधान नवीनतम चींटी संस्करण के साथ काम नहीं करता है।

ऐसा करने का एकमात्र आदिम तरीका डिफ़ॉल्ट डीबग.किस्टोर को डिफ़ॉल्ट फ़ोल्डर में बदलना है।

डिफ़ॉल्ट स्थान .android फ़ोल्डर है। आम तौर पर सी: \ उपयोगकर्ता \ USER_NAME.android पर विंडोज़ पर आप% USERPROFILE% .android का उपयोग करके इसे प्राप्त कर सकते हैं।

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

अगर आपको यहां अधिक जानकारी चाहिए तो मुझे बताएं।


  • अपने ग्रहण कार्यक्षेत्र के भीतर एक नया और खाली फ़ोल्डर बनाएं।

  • उस नई निर्देशिका में फ़ाइल को "डीबग.कीस्टोर" को अपने मानक स्थान से कॉपी करें (उदाहरण के लिए "सी: / यूसर /YourAcount/.Android/" विंडोज़ पर)।

  • ग्रहण को सभी डीबग एपीके (ग्रहण -> विंडो -> प्राथमिकताएं -> एंड्रॉइड -> बिल्ड -> कस्टम डीबग कीस्टोर "के लिए उस नई निर्देशिका / फ़ाइल का उपयोग करने के लिए कॉन्फ़िगर करें।





keystore