কিভাবে একটি অ্যান্ড্রয়েড APK ফাইল সাইন করতে


111

আমি আমার এপকে ফাইল সাইন ইন করার চেষ্টা করছি কীভাবে করব তা আমি বুঝতে পারি না। আমি গভীর থেকে গভীর দিক খুঁজে পাচ্ছি না। আমি প্রোগ্রামিং অভিজ্ঞতা খুব কম, তাই যে কোনও সাহায্য প্রশংসা করা হবে।



2
আপনি এই সম্পর্কে এখানে মহান টিউটোরিয়াল জানতে পারেন androidcookers.co.cc/2012/06/...
Bratin

1
আমি এই নিজস্ব টিউটোরিয়ালটি নিজের কীস্টোর তৈরি করা থেকে শুরু করে Eclipse এ একটি স্বাক্ষরিত APK রপ্তানি করতে ব্যবহার করেছি। mahadera.com/export-sided-android-apk-in-eclipse-ide
Jayson Tamayo

উত্তর:


84

ম্যানুয়াল যথেষ্ট পরিমাণে পরিষ্কার। এটির মাধ্যমে কাজ করার পরে আপনি কোন অংশটির সাথে আটকে যাবেন দয়া করে তা উল্লেখ করুন, আমি পরামর্শ দেব:

https://developer.android.com/studio/publish/app-signing.html

ঠিক আছে, রেফারেন্স ছাড়াই বা একটি ছোট ছোট ওভারভিউ চারপাশে গ্রহন করা, সুতরাং ত্রুটির জন্য কিছু জায়গা রেখে দিন, তবে এটি এর মতো কাজ করে

  • আপনার প্রকল্পটি গ্রহনে খুলুন
  • ডান-মাউস টিপুন -> সরঞ্জামগুলি (অ্যান্ড্রয়েড সরঞ্জাম?) -> স্বাক্ষরিত অ্যাপ্লিকেশন রফতানি করুন (এপিপি?)
  • উইজার্ডের মাধ্যমে যান:
  • একটি নতুন কী-দোকান তৈরি করুন। সেই পাসওয়ার্ডটি মনে রাখবেন
  • আপনার অ্যাপ্লিকেশন সাইন করুন
  • এটি সংরক্ষণ করুন

এছাড়াও, লিঙ্কটি থেকে:

Eclipse ADT দিয়ে কম্পাইল এবং সাইন করুন

আপনি যদি এডিটি প্লাগইনটির সাথে Eclipse ব্যবহার করছেন তবে আপনি একটি স্বাক্ষরিত .apk রফতানি করতে এক্সপোর্ট উইজার্ডটি ব্যবহার করতে পারেন (এবং প্রয়োজনে একটি নতুন কীস্টোরও তৈরি করতে পারেন)। এক্সপোর্ট উইজার্ড আপনার জন্য কীটোল এবং জারসিগনার সাথে সমস্ত মিথস্ক্রিয়া সম্পাদন করে, যা আপনাকে উপরে বর্ণিত হিসাবে সংকলন, স্বাক্ষরকরণ এবং প্রান্তিককরণের জন্য ম্যানুয়াল পদ্ধতিগুলি সম্পাদন করার পরিবর্তে GUI ব্যবহার করে প্যাকেজটিতে স্বাক্ষর করতে দেয়। উইজার্ড একবার আপনার প্যাকেজ সংকলন এবং স্বাক্ষর করে নিলে এটি জিপ সারিবদ্ধ সঙ্গে প্যাকেজ প্রান্তিককরণ সম্পাদন করবে। যেহেতু রফতান উইজার্ড কীটোল এবং জারসিগনার উভয়ই ব্যবহার করে, আপনার অবশ্যই নিশ্চিত করা উচিত যে তারা স্বাক্ষর করার জন্য বেসিক সেটআপে উপরে বর্ণিত হিসাবে আপনার কম্পিউটারে অ্যাক্সেসযোগ্য।

Eclipse এ একটি স্বাক্ষরিত এবং প্রান্তিককরণ .apk তৈরি করতে:

  1. প্যাকেজ এক্সপ্লোরারে প্রকল্পটি নির্বাচন করুন এবং ফাইল> রফতানি নির্বাচন করুন।
  2. অ্যান্ড্রয়েড ফোল্ডারটি খুলুন, অ্যান্ড্রয়েড অ্যাপ্লিকেশন রফতানি করুন নির্বাচন করুন এবং পরবর্তী ক্লিক করুন।

    এক্সপোর্ট অ্যান্ড্রয়েড অ্যাপ্লিকেশন উইজার্ডটি এখনই শুরু হবে, যা আপনার অ্যাপ্লিকেশনটিতে স্বাক্ষর করার প্রক্রিয়াটি সহ আপনাকে নির্দেশ করবে, যার সাথে .apk (বা একটি নতুন কীস্টোর এবং প্রাইভেট কী তৈরি করতে হবে) সাইন ইন করার জন্য ব্যক্তিগত কী নির্বাচন করার পদক্ষেপগুলি রয়েছে।

  3. এক্সপোর্ট উইজার্ডটি সম্পূর্ণ করুন এবং আপনার অ্যাপ্লিকেশনটি সংকলিত, স্বাক্ষরিত, প্রান্তিককরণ এবং বিতরণের জন্য প্রস্তুত হবে।

কীভাবে শুরু করব বুঝতে পারছি না। আমি উপগ্রহ সংস্করণটি ব্যবহার করছি: হেলিওস সার্ভিস রিলিজ 1
খ্রিস্ট

2
তবে দয়া করে পুরো জিনিসটি পড়ুন।
ন্যান্ন

1
মূল সৃজনে আমার ওরফে প্রবেশের কী দরকার?
খ্রিস্ট

9
ম্যানুয়ালটি পড়েছেন? -alias <alias_name> An alias for the key. Only the first 8 characters of the alias are used.এটি কেবল একটি উপনাম। একটি নাম, যদি আপনি চান। আমি "ফার্স্টকি" :-) পরামর্শ দেব
Nanne

1
দুঃখিত, আমি এখনও বুঝতে পারি না। আমি এই উপনামটি কীভাবে ব্যবহার করব। এর উদ্দেশ্য কী?
ব্যবহারকারী 462990

37

কীভাবে ম্যানুয়ালি একটি APK এ স্বাক্ষর করবেন সে সম্পর্কে এখানে একটি গাইড রয়েছে। এটিতে (10/2016)apk-signer প্রবর্তিত নতুন সম্পর্কে তথ্য অন্তর্ভুক্ত রয়েছেbuild-tools 24.0.3

স্বয়ংক্রিয় প্রক্রিয়া:

এই সরঞ্জামটি ব্যবহার করুন (গুগল থেকে নতুন অ্যাপসাইনার ব্যবহার করে):

https://github.com/patrickfav/uber-apk-signer

দাবি অস্বীকার: আমি বিকাশকারী :)

ম্যানুয়াল প্রক্রিয়া:

পদক্ষেপ 1: কীস্টোর উত্পন্ন করুন (শুধুমাত্র একবার)

আপনাকে একবার একটি কীস্টোর তৈরি করতে হবে এবং এটি আপনার unsignedএপিকে সাইন ইন করতে ব্যবহার করতে হবে । পাওয়া জেডিকে সরবরাহিত ব্যবহার করুনkeytool %JAVA_HOME%/bin/

keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

পদক্ষেপ 2 বা 4: জিপালাইন

zipalign উদাহরণস্বরূপ পাওয়া যায় এমন অ্যান্ড্রয়েড এসডিকে সরবরাহ করা একটি সরঞ্জাম যা%ANDROID_HOME%/sdk/build-tools/24.0.2/ আপনি প্লে স্টোরটিতে অ্যাপিকে আপলোড করতে চান তবে এটি একটি বাধ্যতামূলক অপ্টিমাইজেশন পদক্ষেপ।

zipalign -p 4 my.apk my-aligned.apk

দ্রষ্টব্য:jarsigner পুরানোটি ব্যবহার করার সময় আপনাকে স্বাক্ষর করার পরে জিপলাইন করতে হবে । নতুন apksignerপদ্ধতিটি ব্যবহার করার সময় আপনি স্বাক্ষর করার আগে এটি করেন (বিভ্রান্তিকর, আমি জানি)। এপক্সাইনার ঠিকঠাক কাজ করার আগে জিপালিগান চালনা করায় কারণ এপিক্সাইনার APK এ্যালাইমেন্ট এবং সংকোচনের সংরক্ষণ করে (জার্সাইনারের বিপরীতে)।

আপনি এর সাথে প্রান্তিককরণ যাচাই করতে পারেন

zipalign -c 4 my-aligned.apk

পদক্ষেপ 3: সাইন এবং যাচাই করুন

বিল্ড-সরঞ্জামগুলি 24.0.2 এবং আরও পুরানো ব্যবহার করে Using

ব্যবহারের jarsignerযা keytool মত, JDK বন্টন দিয়ে আসে পাওয়া %JAVA_HOME%/bin/এবং এটা এত পছন্দ ব্যবহার করুন:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

এবং যাচাই করা যেতে পারে

jarsigner -verify -verbose my_application.apk

বিল্ড-সরঞ্জামগুলি 24.0.3 এবং আরও নতুন ব্যবহার করে

অ্যান্ড্রয়েড .0.০ এপিএইচ সিগনেচার স্কিম v2 উপস্থাপন করেছে, একটি নতুন অ্যাপ্লিকেশন-স্বাক্ষরকরণ প্রকল্প যা অ্যাপ্লিকেশন ফাইলগুলিতে অননুমোদিত পরিবর্তনের বিরুদ্ধে দ্রুত অ্যাপ্লিকেশন ইনস্টলের সময় এবং আরও সুরক্ষা সরবরাহ করে ( আরও তথ্যের জন্য এখানে এবং এখানে দেখুন)। হুমকি গুগল তাদের নিজস্ব apk স্বাক্ষরকারীapksigner প্রয়োগ করেছে ( ডু !) স্ক্রিপ্ট ফাইলটি পাওয়া যেতে পারে %ANDROID_HOME%/sdk/build-tools/24.0.3/(.jar /libসাবফোল্ডারে রয়েছে)। এটি ব্যবহার করুন

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

এবং যাচাই করা যেতে পারে

apksigner verify my-app.apk

অফিসিয়াল ডকুমেন্টেশন এখানে পাওয়া যাবে।


10

ইন্টেলিজ আইডিইএ বা অ্যান্ড্রয়েড স্টুডিওর ব্যবহারকারীদের জন্য এই পদক্ষেপগুলি করুন:
* মেনু থেকে Build/Generate signed APK
* আপনাকে একটি কীস্টোরের পথ তৈরি করতে হবে। ডায়ালগ থেকে ক্লিক করুন Create new। আপনি একটি জিক্স ফাইল তৈরি করবেন যাতে আপনার কীগুলি অন্তর্ভুক্ত থাকবে। ফোল্ডারটি নির্বাচন করুন, একটি পাসওয়ার্ড নির্ধারণ করুন। সুতরাং আপনার কীস্টোর ঠিক আছে।
* আপনার অ্যাপ্লিকেশনটির জন্য উপন্যাস, কী পাসওয়ার্ড, আপনার নাম ইত্যাদি ব্যবহার করে নতুন কী তৈরি
করুন next পরবর্তী ক্লিক করুন।
* ডায়ালগ থেকে প্রগার্ডটি নির্বাচন করুন বা না নির্বাচন করুন ।

আপনার স্বাক্ষরিত APK ফাইল প্রস্তুত।

সহায়তা ফাইল: https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html


8

চিন্তা করবেন না ...! নীচের এই পদক্ষেপগুলি অনুসরণ করুন এবং আপনি আপনার স্বাক্ষরিত .apk ফাইল পাবেন। আমি এটি সম্পর্কেও উদ্বিগ্ন ছিলাম, তবে এই পদক্ষেপগুলি হতাশার হাত থেকে আমাকে দূরে সরিয়ে দেয়। আপনার অ্যাপ্লিকেশন স্বাক্ষর করার পদক্ষেপ:

  1. স্বাক্ষরবিহীন প্যাকেজ রফতানি করুন:

এক্সিলিপ -> অ্যান্ড্রয়েড সরঞ্জামগুলিতে প্রকল্পটিতে ডান ক্লিক করুন -> স্বাক্ষরিত অ্যাপ্লিকেশন প্যাকেজ রফতানি করুন (এখানে আমরা ডেস্কটপে আমাদের GoogleDriveApp.apk রপ্তানি করি)

আপনার কীস্টোর এবং জারসাইনার সরঞ্জাম ব্যবহার করে অ্যাপ্লিকেশনটিতে স্বাক্ষর করুন (নীচের পদক্ষেপগুলি অনুসরণ করুন):

সেন্টিমিডি খুলুন -> ডিরেক্টরিটি পরিবর্তন করুন যেখানে আপনার "jarsigner.exe" উপস্থিত রয়েছে (যেমন এখানে আমার সিস্টেমে এটি "সি: \ প্রোগ্রাম ফাইলসমূহ জাভা \ jdk1.6.0_17 \ বিন" তে বিদ্যমান রয়েছে)

এখন সেমিডিতে বেলো কমান্ডটি প্রবেশ করান:

jarsigner -verbose -keystore c: \ ব্যবহারকারীগণ \ অ্যান্ড্রয়েড \ ডিবাগ.কিস্টোর সি: \ ব্যবহারকারীগণ ir পীর ফাহিম \ ডেস্কটপগুলি \ গুগলড্রাইভঅ্যাপ.এপকে আমার_কিস্টোর_লিয়াস

এটি আপনাকে আপনার পাসওয়ার্ড সরবরাহ করতে বলবে: কীস্টোরের জন্য পাসফ্রেজ লিখুন: এটি আপনার এপিকে স্বাক্ষর করবে। স্বাক্ষরটি সফল হয়েছে তা যাচাই করতে আপনি চালাতে পারেন:

jarsigner-যাচাই করুন সি: \ ব্যবহারকারীদের ir পীর ফাহিম \ ডেস্কটপগুলি \ গুগলড্রাইভঅ্যাপ.এপকে

এটি দিয়ে ফিরে আসা উচিত: জার যাচাই করা হয়েছে।

পদ্ধতি 2

আপনি যদি এডিটি-র সাথে গ্রহন ব্যবহার করে থাকেন তবে বিতরণ করার জন্য ফাইলটি সংকলন, স্বাক্ষরকরণ, প্রান্তিককরণ এবং প্রস্তুত করা সহজ। আপনাকে কেবল এই পদক্ষেপগুলি অনুসরণ করতে হবে।

  • ফাইল> রফতানি।
  • অ্যান্ড্রয়েড অ্যাপ্লিকেশন রফতানি করুন
  • ব্রাউজ করুন -> আপনার প্রকল্প নির্বাচন করুন
  • পরবর্তী -> পরবর্তী

এই পদক্ষেপগুলি আপনার প্রকল্পটি সংকলিত, স্বাক্ষরিত এবং জিপ প্রান্তিককরণ করবে এবং এখন আপনি নিজের প্রকল্প বিতরণ করতে বা গুগল প্লে স্টোরে আপলোড করতে প্রস্তুত।


আমার ঠিক যা প্রয়োজন ছিল তা হ'ল, একটি নতুন অনলাইন বিল্ড টুল ব্যবহার করা হয়েছিল এবং আমার আগের কীস্টোরটি ব্যবহার করতে হয়েছিল, তাদের নতুন উত্পন্ন কোনওটি নয়। আমি শুধু অনুপস্থিত ছিল জিপ APK সমতলতা ছিল, তাই যদি কেহ একই সমস্যা আছে, এখানে যান stackoverflow.com/a/22682132/826194
Larzan

5

APK স্বাক্ষরকরণ প্রক্রিয়া

ম্যানুয়ালি একটি অ্যান্ড্রয়েড APK ফাইল স্বাক্ষর করতে এই তিনটি কমান্ড চালান:

  1. কীস্টোর ফাইল তৈরি করুন

    keytool -genkey -v -keystore YOUR_KEYSTORE_NAME.keystore -alias ALIAS_NAME -keyalg RSA -keysize 2048 -validity 10000
  2. আপনার APK ফাইল ব্যবহার করে স্বাক্ষর করুন jarsigner

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore KEYSTORE_FILE_PATH UNSIGNED_APK_PATH ALIAS_NAME
  3. জিপালাইনের সরঞ্জামটি ব্যবহার করে স্বাক্ষরিত এপিএকে সারিবদ্ধ করুন

    zipalign -v 4 JARSIGNED_APK_FILE_PATH ZIPALIGNED_SIGNED_APK_FILE_PATH

ধাপ 1


Generate Keystore file

কীটোল-জেনকি-ভি -কিস্টোর YOUR_KEYSTORE_NAME.keystore -alias ALIAS_NAME -Kialg আরএসএ-কাইসাইজ 2048 -মূল্য 10000

উদাহরণ:

keytool -genkey -v -keystore id.keystore -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000

কীস্টোর পাসওয়ার্ড: আপনার অ্যাপ্লিকেশন @ 123 কী পাসওয়ার্ড: আপনার অ্যাপ @ 123

সিএমডি ও / পি

D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
 -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  MySignedApp Sample
What is the name of your organizational unit?
  [Unknown]:  Information Technology
What is the name of your organization?
  [Unknown]:  MySignedApp Demo
What is the name of your City or Locality?
  [Unknown]:  Mumbai
What is the name of your State or Province?
  [Unknown]:  Maharashtra
What is the two-letter country code for this unit?
  [Unknown]:  IN
Is CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?
  [no]:  y

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,
000 days
        for: CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra,
 C=IN
Enter key password for <MySignedApp>
        (RETURN if same as keystore password):
Re-enter new password:
[Storing id.keystore]

D:\ru\SignedBuilds\MySignedApp>

ধাপ ২


Sign your app with your private keystore using jarsigner

jarsigner -verbose -sigalg SHA1withRSA -ডিগস্টালগ SHA1-কিস্টোর KEYSTORE_FILE_PATH UNSIGNED_APK_PATH ALIAS_NAME

উদাহরণ

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id

সিএমডি ও / পি

D:\ru\SignedBuilds\MySignedApp>jarsigner -verbose -sigalg SHA1withRSA -
digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id ---
ect
Enter Passphrase for keystore:
   adding: META-INF/MANIFEST.MF
   adding: META-INF/---.SF
   adding: META-INF/---.RSA
  signing: AndroidManifest.xml
  ..... 
    signing: classes.dex
  signing: lib/commons-codec-1.6.jar
  signing: lib/armeabi/libkonyjsvm.so
jar signed.

Warning:
No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not
be able to validate this jar after the signer certificate's expiration date (2044-02-07) or after an
y future revocation date.

D:\ru\SignedBuilds\MySignedApp>

Verify that your APK is signed

jarsigner -verify -verbose -certs JARSIGNED_APK_FILE_PATH

উদাহরণ

jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk

সিএমডি ও / পি

D:\ru\SignedBuilds\MySignedApp>jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk
 s = signature was verified
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

jar verified.

Warning:
This jar contains entries whose certificate chain is not validated.
This jar contains signatures that does not include a timestamp. Without a timestamp, users may not b
e able to validate this jar after the signer certificate's expiration date (2044-02-09) or after any
 future revocation date.

D:\ru\SignedBuilds\MySignedApp>

ধাপ 3


জিপ্যালাইন ব্যবহার করে চূড়ান্ত APK প্যাকেজ সারিবদ্ধ করুন

জিপালিগন-ভি 4 জারসিআইজিএনএএপকে_এফএইলএফএইপিএপিএপিপিআইপিআইআইএলআইএনএনডিএসএসআইএনএনএপিকে_এফআইএলপিএটিএথ_ডাহিট_কে_সাইনটাপ কে

উদাহরণ

zipalign -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

সিএমডি ও / পি

D:\Android\android-sdk\build-tools\19.1.0>zipalign -v 4 D:\ru\ru_doc\Signed_apk\MySignedApp\28.09.16
_prod_playstore\MySignedAppS1-release-unsigned.apk D:\ru\ru_doc\Signed_apk\MySignedApp\28.09.16_prod
_playstore\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

  4528613 classes.dex (OK - compressed)
 5656594 lib/commons-codec-1.6.jar (OK - compressed)
 5841869 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools\19.1.0>

Verify that your APK is Aligned successfully

জিপালাইন-সি-ভি 4 আপনার_এপকে_পথ

উদাহরণ

zipalign -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

সিএমডি ও / পি

D:\Android\android-sdk\build-tools\19.1.0>zipalign -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

 4453984 res/drawable/zoomout.png (OK)
 4454772 res/layout/tabview.xml (OK - compressed)
 4455243 res/layout/wheel_item.xml (OK - compressed)
 4455608 resources.arsc (OK)
 4470161 classes.dex (OK - compressed)
 5597923 lib/commons-codec-1.6.jar (OK - compressed)
 5783198 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools\19.1.0>

বিঃদ্রঃ:

ভেরিফাইড কমান্ডটি কেবলমাত্র APK নির্মিত হয়েছে এবং সঠিকভাবে স্বাক্ষরিত হয়েছে কিনা তা যাচাই করার জন্য!

তথ্যসূত্র

আমি আশা করি এটি এক এবং সকলকে সহায়তা করবে :)


2

আমি এই সমস্যায় পড়েছি এবং ম্যানিফেস্টে নূন্যতম এসডিকে সংস্করণ পরীক্ষা করে সমাধান করেছি। এটি 15 (আইসিএস) এ সেট করা হয়েছিল তবে আমার ফোনটি 10 ​​টি (জিঞ্জারব্রেড) চলছিল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.