আপনি ভুল করে ডিবাগ কী দিয়ে সাইন করেছেন?
গুগল প্লে আপনাকে আপনার ডিবাগ কীস্টোরের সাথে স্বাক্ষরিত একটি অ্যাপ প্রকাশ করার অনুমতি দেয় না। আপনি যদি এই জাতীয় একটি এপিএল আপলোড করার চেষ্টা করেন, গুগল প্লে "আপনি একটি এপিপি আপলোড করেছেন যা ডিবাগ মোডে সাইন ইন করা হয়েছিল with বার্তাটি দিয়ে ব্যর্থ হবে release আপনাকে মুক্তির মোডে আপনার APK এ স্বাক্ষর করতে হবে" "
তবে, আপনি যদি ডিবাগ কীস্টোরের সাথে স্বাক্ষরিত একটি আপডেট আপলোড করার চেষ্টা করেন, আপনি এই বার্তাটি দেখতে পাবেন না ; গুগল প্লে SHA1 আঙুলের ছাপ উল্লেখ করে প্রশ্নের মধ্যে প্রদর্শিত বার্তাটি প্রদর্শন করবে।
সুতরাং প্রথমে, আপনি ভুল করে আপনার ডিবাগ কী দিয়ে অ্যাপটি স্বাক্ষর করেছেন কিনা তা পরীক্ষা করে দেখুন।
কোন স্বাক্ষর কীগুলি ব্যবহার করা হয়েছিল তা আমি কীভাবে চেক করব?
APK থেকে তথ্য সংগ্রহ করুন
জাভা ব্যবহার করে এই কমান্ডগুলি ব্যবহার করে মূল শংসাপত্রগুলি মূল APK এবং আপডেট APK সহ স্বাক্ষরিত হয়েছিল তা পরীক্ষা করতে পারেন keytool
:
keytool -list -printcert -jarfile original.apk
keytool -list -printcert -jarfile update.apk
এটি আপনাকে একটি APK কীভাবে স্বাক্ষরিত হয়েছিল সে সম্পর্কে বিস্তারিত তথ্য দেখায়, উদাহরণস্বরূপ:
Owner: CN=My App, O=My Company, L=Somewhere, C=DE
Issuer: CN=My App, O=My Company, L=Somewhere, C=DE
Serial number: 4790b086
Valid from: Mon Nov 11 15:01:28 GMT 2013 until: Fri Mar 29 16:01:28 BST 2041
Certificate fingerprints:
MD5: A3:2E:67:AF:74:3A:BD:DD:A2:A9:0D:CA:6C:D4:AF:20
SHA1: A6:E7:CE:64:17:45:0F:B4:C7:FC:76:43:90:04:DC:A7:84:EF:33:E9
SHA256: FB:6C:59:9E:B4:58:E3:62:AD:81:42:...:09:FC:BC:FE:E7:40:53:C3:D8:14:4F
Signature algorithm name: SHA256withRSA
Version: 3
এখানে প্রতিটি গুরুত্বপূর্ণ APK হিসাবে উল্লেখযোগ্য অংশগুলি হ'ল SHA1 আঙুলের ছাপ মান, মালিক পরিচয় মান এবং তারিখ থেকে / অবধি বৈধ ।
যদি সেই keytool
কমান্ডটি কাজ না করে ( -jarfile
বিকল্পটির জন্য জাভা 7 প্রয়োজন), আপনি jarsigner
কমান্ডের মাধ্যমে আরও প্রাথমিক তথ্য পেতে পারেন :
jarsigner -verify -verbose:summary -certs original.apk
jarsigner -verify -verbose:summary -certs update.apk
দুর্ভাগ্যক্রমে এটি SHA1 আঙুলের ছাপটি দেখায় না, তবে শংসাপত্রের মেয়াদ শেষ হওয়ার তারিখগুলির সাথে X.509 মালিকের পরিচয়ও প্রদর্শন করে। উদাহরণ স্বরূপ:
sm 4642892 Thu Apr 17 10:57:44 CEST 2014 classes.dex (and 412 more)
X.509, CN=My App, O=My Company, L=Somewhere, C=DE
[certificate is valid from 11/11/13 12:12 to 29/03/41 12:12]
[CertPath not validated: Path does not chain with any of the trust anchors]
শংসাপত্র চেইন বা টাইমস্ট্যাম্প সম্পর্কে সতর্কতা সহ আপনি কোনও "সার্টিপথ বৈধ নয়" বার্তাটি উপেক্ষা করতে পারেন; তারা এই ক্ষেত্রে প্রাসঙ্গিক নয়।
APK এর মধ্যে মালিক, SHA1 এবং সমাপ্তির মানগুলির তুলনা করুন
যদি মালিক / X.509 পরিচয় মান হয় CN=Android Debug, O=Android, C=US
তবে আপনি নিজের ডিবাগ কী দিয়ে APK এ স্বাক্ষর করেছেন , মূল রিলিজ কী নয় not
যদি SHA1 আঙুলের ছাপ মানটি মূল এবং আপডেট APK এর মধ্যে আলাদা হয় তবে আপনি উভয় APK এর জন্য একই সাইন ইন কী ব্যবহার করেন নি
যদি মালিক / X.509 সনাক্তকরণের মানগুলি পৃথক হয় বা শংসাপত্রের মেয়াদ শেষ হওয়ার তারিখগুলি দুটি APK এর মধ্যে পৃথক হয়, তবে আপনি উভয় APK এর জন্য একই সাইন ইন কী ব্যবহার করেন নি
মনে রাখবেন যে মালিক / X.509 মান দুটি শংসাপত্রের মধ্যে অভিন্ন হলেও, এর অর্থ এই নয় যে শংসাপত্রগুলি অভিন্ন - যদি অন্য কোনও কিছু না মিলে - যেমন আঙুলের ছাপ মানগুলি - তবে শংসাপত্রগুলি আলাদা।
আসল কীস্টোর অনুসন্ধান করুন, ব্যাকআপ পরীক্ষা করুন
যদি দুটি এপিএজে আলাদা আলাদা শংসাপত্রের তথ্য থাকে তবে আপনাকে অবশ্যই মূল কীস্টোরটি খুঁজে বার করতে হবে , যেমন গুগল প্লে (বা keytool
) আপনাকে জানিয়েছে প্রথম SHA1 ফিঙ্গারপ্রিন্ট মানযুক্ত ফাইলটি ।
আপনার কম্পিউটারে এবং আপনার যে কোনও ব্যাকআপগুলিতে সঠিক SHA1 ফিঙ্গারপ্রিন্টটি না পাওয়া পর্যন্ত আপনি সমস্ত কীস্টোরের ফাইলগুলি সন্ধান করুন:
keytool -list -keystore my-release.keystore
Enterপাসওয়ার্ডের জন্য অনুরোধ জানানো হলে কেবল টিপুন - আপনি কেবল SHA1 মানটি পরীক্ষা করতে চাইলে আপনাকে অবশ্যই এটি প্রবেশ করতে হবে না।
আমি আসল কীস্টোরটি কোথাও খুঁজে পাচ্ছি না
যদি আপনি মূল কীস্টোরটি খুঁজে না পান তবে আপনি এই বিশেষ অ্যাপটিতে কোনও আপডেট প্রকাশ করতে পারবেন না ।
অ্যান্ড্রয়েড আপনার অ্যাপ্লিকেশন পৃষ্ঠাতে স্বাক্ষর করে এগুলি স্পষ্টভাবে উল্লেখ করেছে :
সতর্কতা: আপনার কীস্টোর এবং প্রাইভেট কীটি সুরক্ষিত ও সুরক্ষিত জায়গায় রাখুন এবং আপনার সেগুলির সুরক্ষিত ব্যাকআপ রয়েছে কিনা তা নিশ্চিত করুন। আপনি যদি গুগল প্লেতে কোনও অ্যাপ প্রকাশ করেন এবং তারপরে আপনি কীটি দিয়ে আপনার অ্যাপ্লিকেশনটি স্বাক্ষর করেছেন তা হারিয়ে ফেললে আপনি আপনার অ্যাপ্লিকেশনটিতে কোনও আপডেট প্রকাশ করতে সক্ষম হবেন না, কারণ আপনার অ্যাপ্লিকেশনটির সমস্ত সংস্করণ একই কী দিয়ে সাইন ইন করতে হবে।
কোনও এপিকে প্রথম প্রকাশের পরে, পরবর্তী সমস্ত প্রকাশকে অবশ্যই একই কী দিয়ে স্বাক্ষর করতে হবে।
আমি কি মূল APK থেকে মূল স্বাক্ষর কীটি বের করতে পারি?
না এটি সম্ভব নয়। APK এ কেবলমাত্র সর্বজনীন তথ্য রয়েছে এবং আপনার ব্যক্তিগত কী তথ্য নেই।
আমি কি একটি নতুন স্বাক্ষর কীতে স্থানান্তর করতে পারি?
না। আপনি যদি আসলটি সন্ধান করেন তবে আপনি কী এর সাথে একটি APK তে স্বাক্ষর করতে পারবেন না, তারপরে এ এবং বি উভয় কী দিয়ে পরবর্তী আপডেটে স্বাক্ষর করুন, তারপরে পরবর্তী কীটিকে কেবল কী বি দিয়ে স্বাক্ষর করুন
একাধিক কী দিয়ে একটি APK (বা যে কোনও জেআর ফাইল) সাইন করা প্রযুক্তিগতভাবে সম্ভব, তবে গুগল প্লে আর একাধিক স্বাক্ষর সহ APK গুলি গ্রহণ করে না।
এটি করার চেষ্টা করার ফলে "আপনার APK একাধিক শংসাপত্রের সাথে স্বাক্ষরিত হয়েছে Please দয়া করে কেবলমাত্র একটি শংসাপত্র দিয়ে স্বাক্ষর করুন এবং এটি আবার আপলোড করুন the
আমি কি করতে পারি?
আপনাকে নতুন অ্যাপ্লিকেশন আইডি দিয়ে উদ্বোধন করতে হবে (উদাঃ "com.example.myapp" থেকে "com.example.myapp2" তে পরিবর্তন করুন) এবং গুগল প্লেতে একেবারে নতুন তালিকা তৈরি করতে হবে।
সম্ভবত আপনার নিজের কোডটিও পরিবর্তন করতে হবে যাতে লোকেরা পুরানো অ্যাপ্লিকেশন ইনস্টল করা সত্ত্বেও নতুন অ্যাপটি ইনস্টল করতে পারে, উদাহরণস্বরূপ আপনার নিশ্চিত হওয়া উচিত যে আপনার বিরোধী সামগ্রী সরবরাহকারী নেই।
আপনি আপনার বিদ্যমান ইনস্টল বেস, পর্যালোচনা ইত্যাদি হারাবেন এবং আপনার বিদ্যমান গ্রাহকদের পুরানো অ্যাপটি আনইনস্টল করার এবং নতুন সংস্করণ ইনস্টল করার জন্য একটি উপায় খুঁজে পেতে হবে।
আবার, আপনার কাছে এই সংস্করণটির জন্য ব্যবহার করা কীস্টোর এবং পাসওয়ার্ডগুলির সুরক্ষিত ব্যাকআপ রয়েছে তা নিশ্চিত করুন।