অ্যান্ড্রয়েড স্টুডিও: গ্র্যাডল ব্যবহার করে স্বাক্ষরিত এপিপি কীভাবে তৈরি করা যায়?


90

আমি গুগল এবং এসও তে অনুসন্ধান করেছি কিন্তু আমার উত্তর খুঁজে পাচ্ছি না।

আমি প্রথমবারের মতো গ্রেডল সিস্টেমের সাথে কাজ করছি এবং আমি এখন গুগল প্লেতে আপলোড করার জন্য একটি স্বাক্ষরিত APK তৈরির পর্যায়ে এসেছি (প্রকল্পটি গ্রহন থেকে আমদানি করা হয়)।

এখন আমি এখানে অংশটি পড়েছি http://tools.android.com/tech-docs/new-build-system/user-guide#TOC- বিল্ডিং- এবং- যে কাজগুলিsigningConfigs আপনার যুক্ত করা উচিতbuild.gradle

আমি এই রেখাগুলি যুক্ত করেছি এবং এখন আমি দেখেছি যে আপনাকে চালানো দরকার ./gradlew assembleReleaseতবে এটি আমার সেন্টিমিটার রিটার্নে 'গ্রেডেল' চালানো কোনও অভ্যন্তরীণ বা বহিরাগত কমান্ড, অপারেবল প্রোগ্রাম বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়। আমি বিল্ড.gradle এ ডান ক্লিক করতে এবং এটি চালানোর চেষ্টা করেছি, এটি সফল বলেছিল তবে একবার আমি বিল্ড / এপিপি ফোল্ডারে দেখি কেবল একটি ফাইল বলেapp-debug-unaligned.apk

সুতরাং আমি কীভাবে গ্রেডল সিস্টেমটি ব্যবহার করে স্বাক্ষরিত এপিকে তৈরি করতে পারি?



@ স্কটবার্টা আংশিকভাবে কৌতুকটি করেছে, একবার আমি রিলিজ মোডে চলে এসে গ্রেডটি চালিয়েছিলাম তবে আমি ত্রুটি পেয়েছি, তবে তিনি নির্মাণ করে> মেনু দিয়ে স্বাক্ষরিত এপিপি তৈরি করে শেষ পর্যন্ত এটি কার্যকর হয়েছিল! ধন্যবাদ আমি সরবরাহিত লিঙ্কে আপনাকে upvated।
গুয়

গ্রেড ফাইল থেকে ভি 1 (জার স্বাক্ষর) বা ভি 2 (পূর্ণ এপিকে স্বাক্ষর) সংস্করণ দিয়ে সাইন ইন করবেন? এখানে সমাধান: stackoverflow.com/questions/57943259/...
user1506104

উত্তর:


97

অনুযায়ী আপনার বিল্ড উত্পন্ন করার জন্য তিনটি উপায় রয়েছে buildType। (আপনার ক্ষেত্রে এটি মুক্তি পেয়েছে তবে এটি আপনার পছন্দের কোনও কিছুর নাম দেওয়া যেতে পারে))

  1. অ্যান্ড্রয়েড স্টুডিওর ডান প্যানেলে গ্রেডল টাস্ক এ যান এবং মডিউল টাস্কগুলি সন্ধান করুন assembleReleaseবা এর assemble(#your_defined_buildtype)নিচে অনুসন্ধান করুন

  2. বাম প্যানেলে বিল্ডেন্ট ভেরিয়েন্টে যান এবং ড্রপ ডাউন থেকে বিল্ডটি নির্বাচন করুন

  3. ফাইল এক্সপ্লোরের প্রোজেক্ট রুট ডিরেক্টরিতে যান এবং সেমিডি / টার্মিনাল খুলুন এবং রান করুন:

    লিনাক্স: ./gradlew assembleRelease or assemble(#your_defined_buildtype)

    উইন্ডোজ: gradlew assembleRelease or assemble(#your_defined_buildtype)

আপনি যদি একটি রিলিজ বিল্ড (কেবল) করতে চান তবে আপনি Build> ব্যবহার করতে পারেন Generate Signed apk। অন্যান্য বিল্ড ধরণের জন্য, কেবলমাত্র উপরের তিনটি বিকল্প উপলব্ধ।

আপনার module/buildডিরেক্টরিতে বিল্ড টাইপের নাম থাকা জেনারেটেড এপিএকে আপনি আবিষ্কার করতে পারেন ।


4
আপনার বিল্ডড্র্যাডলে বিল্ড কনফিগারেশন থাকলে এটি কেবল একটি স্বাক্ষরিত এপিকে তৈরি করবে। আপনি যদি এটি সোর্স কোড ম্যানেজমেন্ট সরঞ্জামগুলিতে সঞ্চয় করেন বা অন্য লোকেদের সাথে ভাগ করে নেন তবে আপনার স্বাক্ষর কোড থেকে আপনার স্বাক্ষর কীটির শংসাপত্রগুলি আলাদা করার বিষয়ে ভাবা উচিত।
জানুস

বিল্ড> জেনারেট সাইনড এপিকে ... এটার মতোই সহজ
অতুল

61

যে কোনও বিদ্যমান অ্যান্ড্রয়েড স্টুডিও গ্রেডেল প্রকল্প নেওয়া এবং কোনও ফাইল সম্পাদনা না করে কমান্ড লাইন থেকে এটি তৈরি / সাইন ইন করা সম্ভব। এটি আপনার কী এবং পাসওয়ার্ডগুলি পৃথক রাখার সময় সংস্করণ নিয়ন্ত্রণে আপনার প্রকল্পটি সংরক্ষণ করার জন্য এটি খুব সুন্দর করে তোলে:

./gradlew assembleRelease -Pandroid.injected.signing.store.file=$KEYFILE -Pandroid.injected.signing.store.password=$STORE_PASSWORD -Pandroid.injected.signing.key.alias=$KEY_ALIAS -Pandroid.injected.signing.key.password=$KEY_PASSWORD

4
যেহেতু আমাদের সোর্স কোডটি সহযাত্রীর কাছে প্রেরণ করা দরকার, তাই আমাদের কীস্টোরের জিনিস গোপন রাখার সেরা উপায় এটি। ধন্যবাদ
ইয়েং

4
যাইহোক এই android.injected.signing। * বৈশিষ্ট্যের অস্তিত্ব জানতে পারি?
টিক্সিয়ন

জাভের কাছ থেকে আমি অ্যান্ড্রয়েড স্টুডিও টিম থেকে এই তথ্যটি পেয়েছি এবং এর মতো অন্য কোনও ভেরিয়েবল আছে কিনা তা আমি জানি না।
ওয়েইন পাইকারস্কি

আমি জাভা.এল.আং.রুনটাইম এক্সসেপশন: com.android.ide.common.signing.KeytoolException: স্টোর "সি: \ ব্যবহারকারীরা d ডাইরেক্টরি \ ডেস্কটপ \ someKey.jks" থেকে কী এক্সএক্সএক্সএক্সএক্সএক্স পড়তে ব্যর্থ: 'এক্সএক্সএক্সএক্সএক্সএক্সএক্স' সাথে কোনও কী নেই কীস্টোর সিতে পাওয়া গেছে: \ ব্যবহারকারীরা \ ডাইরেক্টরি \ ডেস্কটপ \ someKey.jks। তা কেন?
আর্চি জি কুইনস

40

আপনি এই কোড ব্যবহার করতে পারেন

android {
   ...
    signingConfigs {
        release {
            storeFile file("../your_key_store_file.jks")
            storePassword "some_password"
            keyAlias "alias_name"
            keyPassword "key_password"
        }
    }

    buildTypes {

        release {
            signingConfig signingConfigs.release
        }
    }
   ...
}

তারপরে আপনার টার্মিনাল রান থেকে

./gradlew assembleRelease

আপনি এপিকে পাবেন

আপনার অ্যান্ড্রয়েড-অ্যাপ / বিল্ড / আউটপুট / এপিকে / আপনার অ্যান্ড্রয়েড-অ্যাপ-রিলিজ.এপকে


@ ওজকানভুঙ্ক দয়া করে আপনার কীস্টোরের পথটি আবার পরীক্ষা করুন আপনার পথটি ভুল হিসাবে সংজ্ঞায়িত হতে পারে।
ভাবেশ কৈলা

এটি করার সময়, সম্ভাবনাগুলি build.gradleহ'ল আপনার সংস্করণ নিয়ন্ত্রণে চেক করা আছে এবং আপনার পাসওয়ার্ডগুলিও তাই! আপনার প্রকল্পে সুরক্ষা গুরুত্বপূর্ণ হলে অন্য একটি রুট নেওয়ার বিষয়টি বিবেচনা করুন।
মার্কো 7757

4
গ্রেড এসেম্বলআর কাজ করছেন না দয়া করে। গ্রেড্লু এসেম্বল এর পরিবর্তে ব্যবহার করুন রিলেজ
সতীশ গাদে


-3

বিল্ড মেনু> স্বাক্ষরিত এপিপি উত্পন্ন করুন


আপনি যদি এটি চালান, এটি আপনাকে জানায় যে এটি করার উপায় এটি নয়। আমি যদি .apk ফাইলটি আপলোড করি তবে এটি ত্রুটি সনাক্ত করে বা ত্রুটি সনাক্ত করছে এমন কিছু বলছে।
গুয়

11
এটি বলে যে ডিবাগিং চলছে ... অ্যান্ড্রয়েড স্টুডিওতে, বাম দিকে, এমন একটি ট্যাব থাকা উচিত যা 'রূপগুলি তৈরি করুন' বলে ... এটিতে ক্লিক করুন এবং 'ডিবাগ' থেকে 'রিলিজ' এ সমস্ত কিছু পরিবর্তন করুন ... তার পরে , আবার স্বাক্ষরিত
এপিকে

4
এটি আর কাজ করে না! উদাহরণস্বরূপ, এটি নির্মিত এপিএকে বিল্ডকনফাইগ রয়েছে U এটি আমার সমস্যার কোনও শেষের কারণ ঘটেনি, আপনার এখন গ্রেডলু এসেম্বলআরেলিজ পদ্ধতিটি ব্যবহার করতে হবে।
বেন ক্লেটন

@ বেনক্লেটন আপনি একদম ঠিক আছেন! আমি এই কারণে ঘন্টা নষ্ট! অ্যান্ড্রয়েড স্টুডিওতে আরও একটি বিরক্তিকর "বাগ"
ঝামেলা

আমি অবাক হই যে কেন এই সহজ পদক্ষেপটি স্বাক্ষরিত এপিপি তৈরির পক্ষে সবচেয়ে উপযুক্ত উপায় হতে পারে না কারণ এটি স্পষ্টভাবে উল্লেখ করেছে। এই পদক্ষেপটি কোনও সমস্যা ছাড়াই অ্যাপ তৈরি করেছে এবং আমার পক্ষে নিখুঁতভাবে কাজ করে। তবে এসও-তে আরও প্রচুর উত্তর আমাকে এই ভেবে বিভ্রান্ত করেছিল যে আমি কী করব না কী সঠিক হতে পারে বা কী।
অতুল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.