2011-01-27 20 views
7

मैं चींटी कार्य 'साइनजर' का उपयोग करके कुछ जार फिर से हस्ताक्षर करने का प्रयास कर रहा हूं, हालांकि यह मुझे बता रहा है "हस्ताक्षरकर्ता प्रमाणपत्र समाप्त हो गया है।"'कालबाह्य' कीस्टोर रीफ्रेश करने की कोशिश कर रहे हैं

तो मैं कुंजीस्टोर उम्मीद कर इस यह अन-सीमा समाप्त हो 'होगा दोबारा बनाने के लिए कोशिश की ...

keytool -genkey -keystore mykeystore -alias myalias

लेकिन कुंजीस्टोर पासवर्ड मैं पाने के प्रवेश करने के बाद: "Keytool त्रुटि: java.lang अपवाद: कुंजी जोड़ी उत्पन्न नहीं हुई है, उपनाम पहले से मौजूद है "

मैं क्या गलत कर रहा हूं? क्या मुझे इसे फिर से उत्पन्न करने के लिए कीस्टोर को हटाने की आवश्यकता है या इसे रीफ्रेश करने का एक आसान तरीका है, इसलिए इसकी समयसीमा समाप्त नहीं हुई है?

धन्यवाद।

+0

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

उत्तर

5

आप शर्तों को जोड़ रहे हैं। एक कीस्टोर में कुंजी होती है, एक कुंजी कुछ हस्ताक्षर करने के लिए उपयोग की जाती है।

AFAIK, आप मौजूदा उपनाम (नाम) का उपयोग कर पुरानी कीस्टोर में एक नई कुंजी डालने की कोशिश कर रहे हैं। आप बस एक नया इस्तेमाल क्यों नहीं करते? या तो यह या delete पहले कीस्टोर से पुरानी कुंजी। आपको पूरे कीस्टोर को छोड़ने की जरूरत नहीं है।

portecle पर एक नज़र डालें, यह सरल टूल आपको कीस्टोर को अधिक आसानी से कुशल बनाने में मदद करता है।

+1

मिश्रण शब्द? बहुत संभावना है! मुझे वास्तव में जावा की इस 'फीचर' के लिए प्रलेखन पसंद नहीं है ... पोर्टेकल धन्यवाद पर एक नज़र डालेंगे। मुझे लगता है कि मैं जो खोज रहा हूं वह एक हस्ताक्षर की समाप्ति का विस्तार करने का एक आसान तरीका है ..... – pstanton

+0

अजीब। मैंने अभी अपनी .jks फ़ाइल हटा दी है और अभी भी ... मुझे यह वही त्रुटि मिलती है। केवल 1 स्व-हस्ताक्षरित प्रमाण के साथ एक प्रमुख स्टोर के लिए, क्यों * मैं पूरी चीज़ को प्रतिस्थापित नहीं करना चाहिए? –

+0

@ebyrob: मैं नहीं कह रहा हूं कि आपको नहीं करना चाहिए। जो कुछ भी आपको लगता है वह काम करेगा और यदि ऐसा नहीं होता है, तो पोर्टेकल का प्रयास करें क्योंकि इससे आपको समस्या को समझने में मदद मिल सकती है। एक कुंजी कीस्टोर के मामले में, मैं कुंजीस्टोर और कुंजी के लिए एक ही मजबूत पासवर्ड का उपयोग करने का सुझाव दूंगा (आप निश्चित रूप से भ्रम से बचें और मुझे विश्वास है कि इसमें कोई सुरक्षा जोखिम शामिल नहीं है)। – maaartinus

2

इसके लिए आपको फिर से प्रमाण पत्र पुन: उत्पन्न करने के लिए इन चरणों का पालन करें।

1)keytool -genkey -v -keystore mycertificate.keystore -alias mykey -keyalg 
    RSA -keysize 2048 -validity 1000 
    2) jarsigner -verbose -keystore mycertificate.keystore D:\app.apk mykey 
    3) jarsigner -verify app.apk 
    If it will have done then shows a message "successfully verified" 
    4) zipalign -v 4 D:\app.apk D:\signedapp.apk 

    it will generate new certificate. enjoy :) 
संबंधित मुद्दे