অ্যাপ্লিকেশন-রিলিজ-স্বাক্ষরিত। অ্যাপ্লিকেশন স্বাক্ষরিত নয়


199

আমি গিথুব এ একটি অ্যান্ড্রয়েড অ্যাপের জিপ ফাইল ডাউনলোড করেছি এবং আমি এটি চালানোর চেষ্টা করছি, তবে আমি এই বার্তাটির সাথে একটি ডায়ালগ পেয়েছি

app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.

আমি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছি। আমার কী করা উচিত?

উত্তর:


437

যদি কেউ অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে রিলিজ বিল্ডটি ডিবাগ করতে চায় তবে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. রিলিজ মোডে বিল্ড বৈকল্পিক সেট করুন।

এখানে চিত্র বর্ণনা লিখুন

  1. বাম নেভিগেশন প্যানে অ্যাপে ডান ক্লিক করুন , মডিউল সেটিংস খুলুন ক্লিক করুন ।

  2. সাইনিং ট্যাবে যান। একটি স্বাক্ষরকারী কনফিগারেশন যুক্ত করুন এবং তথ্য পূরণ করুন। আপনার কীচেইনটিও নির্বাচন করুন।

এখানে চিত্র বর্ণনা লিখুন

  1. বিল্ড টাইপ ট্যাবে যান । রিলিজ মোড নির্বাচন করুন এবং সেট করুন:

সত্য থেকে বিতর্কযোগ্য ।

কনফিগ-এ কনফিগার সাইন করা । (আপনি সবেমাত্র এটি তৈরি করেছেন)।

এখানে চিত্র বর্ণনা লিখুন

আপনার গ্রেড সিঙ্ক করুন। উপভোগ করুন!


3
প্রকৃতপক্ষে প্রোডের জন্য মুক্তির APK জেনারেট করার সময় আমরা কি ডিবাজিযোগ্যকে মিথ্যাতে সেট করতে পারি? বা স্টুডিও নিজে থেকে এটি করবে?
ইশান গার্গ

7
@ ইশানগার্গ রিলিজ
এপিপি

1
আপনি ভাবেন যে এটি প্রথমটি তৈরির কারণেই এটি কেন বিস্মিত হয় তা ডিফল্ট হয়ে যায় ... কিছু লোকের পক্ষে তারা যে স্বাক্ষর করতে চায় না এমন প্যাকেজগুলিতে স্বাক্ষর করা খারাপ হবে ... তবে ধন্যবাদ, মানুষ আমি বিল্ড টাইপ সেট করতে ভুলে গেছি " সাইন ইন কনফিগারেশন "এবং স্ক্রিনশট পর্যন্ত, আমি মনে
রাখছিলাম

14
নেই কোন প্রয়োজন সেট করতে ডিবাগযোগ্য করার সত্য , (যদি না সত্যিই তাই অভিপ্রেত)।
কম্পিউটিংফ্রেক

4
আপনার সচেতন হওয়া উচিত যদিও বিল্ড টাইপটিতে একটি কনফিগার সেট করার পরে আপনার সমস্ত কী সম্পর্কিত তথ্য (পাসওয়ার্ড সহ) গ্রেড ফাইলটিতে উপস্থিত হবে ...
জ্যাকব.বি

95

নিশ্চিত করুন যে বিল্ড ভেরিয়েন্টটি অ্যান্ড্রয়েড স্টুডিওতে ( বিল্ড ভেরিয়েন্টস প্যানেলটি পরীক্ষা করুন) ডিবাগ করার জন্য সেট করা হয়েছে (এবং প্রকাশিত হবে না )।

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

তবে আপনাকে মুক্তির জন্য একটি নির্দিষ্ট কীস্টোর তৈরি এবং কনফিগার করতে হবে।

অফিশিয়াল ডকুমেন্টেশন, কভার ডিবাগ এবং রিলিজ মোড: https://developer.android.com/tools/publishing/app-signing.html


53

সর্বদা আপনার বিল্ড.gradle ডিএসএল স্ক্রিপ্টটি ব্যবহার করে আপনার বিল্ডটিতে সাইন ইন করুন:

    android {
    signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }

        myConfig {
            storeFile file("other.keystore")
            storePassword "android"
            keyAlias "androidotherkey"
            keyPassword "android"
        }
    }

    buildTypes {
        bar {
            debuggable true
            jniDebugBuild true
            signingConfig signingConfigs.debug
        }
        foo {
            debuggable false
            jniDebugBuild false
            signingConfig signingConfigs.myConfig
        }
    }
}

আপনি যদি অ্যান্ড্রয়েড স্টুডিওর সাথে যুক্ত গ্র্যাডল বিল্ড সিস্টেমের আরও কিছুটা বুঝতে চান তবে কেবল এখানে দেখুন:

গ্রেডল প্লাগইন ব্যবহারকারী গাইড


তবে আমার কেন তা করতে হবে? গাইডটিতে তারা বলে "ডিফল্টরূপে, একটি ডিবাগ কনফিগারেশন রয়েছে যা একটি পরিচিত পাসওয়ার্ড সহ একটি ডিবাগ কীস্টোর ব্যবহার করতে সেটআপ করা হয় এবং একটি পরিচিত পাসওয়ার্ড সহ একটি ডিফল্ট কী" " অন্যান্য অ্যাপ্লিকেশনগুলির সাথে আমার কোনও সমস্যা নেই।
অ্যান্ড্রু

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

হুম, আমার পক্ষেও কাজ করে না। কোনও গ্রেড ত্রুটি নেই, তবে এখনও সাইন ইন করার ত্রুটি হচ্ছে (এবং এটি আমার কীফাইলে দেখানো হয়েছে)।
ব্রায়ান নোব্লাচ

হাই ব্রায়ান! আপনি কি আপনার ডিবাগ.কিস্টোর মুছে ফেলার চেষ্টা করতে পারেন? তারপরে একটি নতুন ডামি প্রকল্প শুরু করুন এবং একটি নতুন কীস্টোর তৈরি করতে হবে। এর পরে, আপনার আসল প্রকল্পটি আবার খুলুন এবং চেষ্টা করুন। ব্যর্থ হওয়ার আগে অন্য কোনও মন্তব্য করা হলে আমি কেবলমাত্র এটিই সুপারিশ করতে পারি।
মার্টিন

1
নয় debug.keystoreঅবস্থিত .androidফোল্ডারের? আপনি যদি আপনার প্রকল্পে না সরিয়ে থাকেন তবে আপনি পুরো পথটি দিতে চাইতে পারেন
গোখান আরিক

35

আমি স্বাক্ষরিত এপিএকে সাফল্যের সাথে ডিবাগ করতে সক্ষম হয়েছি, এই পদ্ধতিটি অনুসরণ করুন: -

  1. "বিল্ড ভেরিয়েন্ট" টুলবারে "রিলিজ" সংস্করণ চয়ন করুন
  2. ইন Build.gradleমডিউল সেট debuggable trueরিলিজ বিল্ড টাইপ জন্য
  3. ফাইল-> প্রকল্পের কাঠামো-> এ যান সাইন ইন ট্যাব এর নীচে সমস্ত তথ্য পূরণ করুন-> স্বাদ ট্যাব এর অধীনে-> সাইন ইন কনফিগারেশন নির্বাচন করুন আপনি সদ্য তৈরি করেছেন
  4. ব্রেকপয়েন্টগুলি সেট করুন
  5. ডিবাগ মোডে অ্যাপ্লিকেশন চালান

আমার জন্য কাজ করছে না। বৈকল্পিক মঞ্চের জন্য আমি ডিবাগযোগ্য সত্য স্থির করেছি তবে এখনও, বিল্ডিংয়ের আগে এপিকে স্বাক্ষর করতে হবে।
নিশান্ত তানওয়ার

18

যদি কেউ অ্যান্ড্রয়েড স্টুডিও ৩.৩ ব্যবহার করে পৃথক বিল্ড বৈকল্পটি ডিবাগ এবং প্রকাশ করতে চায় তবে নীচের পদক্ষেপগুলি অনুসরণ করুন: 1. বিল্ড বৈকল্পিকটি রিলিজ মোডে সেট করুন।

ভেরিয়েন্ট তৈরি করুন

  1. ফাইল >> প্রকল্পের কাঠামোতে যান
  2. মডিউল নির্বাচন করুন, তারপরে কনফিগারেশন সাইন করুন
  3. সাইন ইন কনফিগের অধীনে প্লাস আইকনে ক্লিক করুন

সাইন ইন কনফিগারেশন

  1. রিলিজ বিভাগটি নির্বাচন করুন এবং আপনার মুক্তির অ্যাপ্লিকেশন তথ্য সরবরাহ করুন তারপরে প্রয়োগ করুন এবং ঠিক আছে।

সাইন ইন করুন

  1. আপনার অ্যাপ স্তরে যান build.gradleএবং buildTypesস্ক্রিনশটের নীচের মতো আপনার > "রিলিজ" বিভাগটি পরিবর্তন করুন ।

চূড়ান্ত

তারপরে আপনার প্রকল্পটি চালান Run শুভ কোডিং।


আপনি .jks ফাইলটি কোথা থেকে পাবেন?
মার্ক আলেকজান্ডার

@ মার্কএলেক্সান্ডার এখানে কোনও .jks কোড জেনারেট স্ক্রিনশট নেই। আপনি অ্যান্ড্রয়েড স্টুডিও সম্পাদক থেকে .jks ফাইল তৈরি করতে পারেন।
শোহেল রানা

13

SignConfigs বিল্ডটাইপগুলির আগে হওয়া উচিত

signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }

        myConfig {
            storeFile file("other.keystore")
            storePassword "android"
            keyAlias "androidotherkey"
            keyPassword "android"
        }
    }

    buildTypes {
        bar {
            debuggable true
            jniDebugBuild true
            signingConfig signingConfigs.debug
        }
        foo {
            debuggable false
            jniDebugBuild false
            signingConfig signingConfigs.myConfig
        }
    }

12

আপনি যদি ডিবাগ মোডে অ্যাপ চালাতে চান

1) বাম দিকের নীচের দিকে দেখুন, উপরে পছন্দসইগুলির উপরে বিল্ড ভেরিয়েন্ট রয়েছে

2) বিল্ড ভেরিয়েন্টে ক্লিক করুন। রিলিজ ক্লিক করুন এবং ডিবাগ চয়ন করুন

এটি নিখুঁত কাজ করে !!!


9

আপনি যে অ্যাপ্লিকেশনটি ডাউনলোড করেছেন তাতে বিল্ড.gradle এর ফাইলে একটি স্বাক্ষরিত তথ্য অন্তর্ভুক্ত থাকতে পারে। আপনি যদি এর মতো কোডগুলি দেখে থাকেন:

buildTypes {
    debug {
        signingConfig signingConfigs.release
    }
    release {
        signingConfig signingConfigs.release
    }
}

আপনি সেগুলি মুছতে পারেন এবং আবার চেষ্টা করতে পারেন।


8

গ্রেড কোটলিন ডিএসএল এর জন্য

signingConfigs {
    create("releaseConfig") {
        storeFile = file("your keystore file path")
        storePassword = "storePassword"
        keyAlias = "keyAlias"
        keyPassword = "keyPassword"
    }
}
buildTypes {
    getByName("release") {
        signingConfig = signingConfigs.getByName("releaseConfig")
        isMinifyEnabled = true
        isShrinkResources = true
        proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
    }
}

6

সুরক্ষার কারণে আপনি অ্যান্ড্রয়েডে স্বাক্ষরবিহীন এপিকে ইনস্টল করতে পারবেন না। সুতরাং আপনার যদি কেবল স্বাক্ষরবিহীন এপিপি থাকে: আপনাকে অবশ্যই এটি সাইন করতে হবে। এটি কীভাবে করা যায় তা এখানে: লিঙ্ক

নোট করুন যে আপনি স্ব-স্বাক্ষরিত শংসাপত্রের সাথে এপিকে স্বাক্ষর করতে পারেন।

বিকল্প একটি হতে পারে:

  • উপলব্ধ থাকলে স্বাক্ষরিত APK ডাউনলোড করতে।
  • উত্সগুলি ডাউনলোড করতে, সেগুলি সংকলন করুন (অ্যান্ড্রয়েড-স্টুডিও বা গ্রেডেল সহ ...)। এটি একাধিক অ্যাপস তৈরি করবে এবং এর মধ্যে একটিতে আপনার ডিবাগ-কিতে স্বাক্ষর করা হবে (এবং তাই আপনি এটি ইনস্টল করতে সক্ষম হবেন)

1
আমি নিশ্চিত যে আমি বুঝতে পারছি না। আমি অ্যাপ্লিকেশনটির
অ্যান্ড্রু

সুতরাং আপনাকে অবশ্যই একটি স্বাক্ষরিত সংস্করণটি সংকলন করতে হবে। সাধারণত স্বাক্ষরিত সংস্করণ একই সময়ে নির্মিত হয় এবং স্বাক্ষরবিহীন সংস্করণ হিসাবে একই ডিরেক্টরিতে অবস্থিত।
বেন 75

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

5

স্টাফেনের পরামর্শ অনুসারে বিল্ড ভেরিয়েন্টটি পরিবর্তন করে আমার সমস্যার সমাধান করা হয়েছিল, যদি আমি এখানে যেমন করেছিলাম "বিল্ড ভেরিয়েন্টস" সন্ধান করতে যদি কেউ লড়াই করে যাচ্ছিল তবে আপনি এটি সন্ধান করতে পারেন এমন একটি স্ক্রিনশট রয়েছে।

এখানে চিত্র বর্ণনা লিখুন


1
আমি দেবুগ থেকে প্রকাশের পরিবর্তনের রূপের পরে সমস্যার মুখোমুখি হচ্ছি
পার্থ প্যাটেল

2

সরঞ্জাম উইন্ডো বারে, বিলম্ব ভেরিয়েন্টগুলি পরিবর্তন করুন বিল্ড বৈকল্পটি রিলিজ থেকে ডিবাগ-এ নির্বাচন করুন


2

আমি কিভাবে এই সমাধান

এই ত্রুটিটি ঘটে কারণ আপনি আপনার বিল্ড রূপগুলি রিলিজ মোডে সেট করেছেন। এটি আবার মোড তৈরি করতে এবং প্রকল্পটি চালানোর জন্য সেট করুন।

আপনি যদি রিলিজ মোডে চলতে চান তবে অ্যাপটি প্রকাশের সময় কেবলমাত্র আমরা স্বাক্ষরিত এপিপি তৈরি করি normal


আমার কাছে কেবল "ডিবাগ" এবং "রিলিজ" বিকল্প রয়েছে?
স্টিভ স্মিথ

0

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


0

আমিও এই সমস্যাটি এবং আমার কোডটি নীচে appear

        storeFile file(properties.getProperty("filepath"))
        storePassword properties.getProperty("keypassword")
        keyAlias properties.getProperty("keyAlias")
        keyPassword properties.getProperty("keypassword")

কারণটি সম্পত্তি নামের ত্রুটি, এটি কীপাসওয়ার্ডটি কী-পাসওয়ার্ড নয়


0

অবশেষে আমার পক্ষে কী কাজ করেছে এবং কেন তা আমার কোনও ধারণা নেই:

  • লাস্টপাসে গিয়েছিল (পরিষেবাটি আমি আমার সমস্ত পাসওয়ার্ড রাখতে ব্যবহার করি)
  • পাসওয়ার্ডের উপরে কার্সারটি রেখে ডাবল ক্লিক করে আমার পাসওয়ার্ডটি নির্বাচন করুন
  • একবার নির্বাচিত হয়ে আমি অনুলিপি করতে সিএমডি সি টিপুন
  • অ্যান্ড্রয়েড স্টাডিতে গিয়েছে এবং পেস্ট করতে সিএমডি ভি

লক্ষ্য করুন আমি পাসওয়ার্ডের শেষে ক্লিক করে এবং মাউসটি সরিয়ে পাসওয়ার্ডটি নির্বাচন করে পাসওয়ার্ডটি নির্বাচন করে অনেক বার অনুলিপি করার চেষ্টা করেছি।

এটি আশ্চর্যজনক তবে এটি অনুলিপি করতে কেবল পাসওয়ার্ডের উপরে ডাবল ক্লিক করে কাজ করেছে।

এছাড়াও আমি এই পোস্টে ওপেন মডিউল সেটিংস> সাইনিং ... পদ্ধতি @ নাইটফুরি দ্বারা ব্যাখ্যা করেছি।


0

বিল্ডড্রেডেল ফাইলটিতে কোডের লাইনগুলি যুক্ত করা আমার জন্য কাজ করেছে, নিচের বিল্ডটাইপস ব্লকের নীচে প্রকাশের মতো যুক্ত করুন

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        applicationIdSuffix ".debug"
        debuggable true
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.