মুক্তির জন্য এপিকে স্বাক্ষরিত ডিবাগ কীভাবে করবেন?


114

আমার কাছে একটি APK রয়েছে যা আমি স্বাক্ষর করেছি এবং অ্যান্ড্রয়েড মার্কেটে আপলোড করেছি এবং আমার ফোনে ইনস্টল করেছি। আমি এই রিলিজ অ্যাপকে ডিগ্রো করতে চাই (গ্রহনের মাধ্যমে) এটি আমার ফোনে চলছে il আমি এটি পূর্বেই করেছি (এবং এটি এন্ড্রয়েড বিকাশ সরঞ্জামগুলির মধ্যে একটির সাথে মনে আছে; সম্ভবত ডালভিক ডিবাগ মনিটর) তবে দুর্ভাগ্যক্রমে এটি কীভাবে করা যায় তা মনে করতে পারি না এবং অনলাইনে কোনও নিবন্ধ সন্ধান করতে অক্ষম হয়ে পড়েছি। যে কেউ এই কাজ করা যায় কিভাবে জানেন না?

দ্রষ্টব্য: আমি ম্যানিফেস্টে সেট করেছিandroid:debuggable="true" এবং আমার ফোনে ইউএসবি ডিবাগিং সক্ষম করেছি।


আপনি বর্তমানে কি চেষ্টা করছেন? আপনি কি জানেন না কীভাবে ডিগ্রি ভিউটি Eclipse এ ব্যবহার করবেন?
স্যাম ডোজর

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

আপনি কি আপনার অ্যাপ্লিকেশনের জন্য প্যাকেজের নামে ক্লিক করছেন?
স্যাম ডোজর

হ্যাঁ. আপনার উত্তরে মন্তব্য দেখুন। (বিটিডব্লিউ সাহায্যের জন্য ধন্যবাদ। এটি কৃতজ্ঞ।)
আদিল হুসেন

উত্তর:


77

আপনার ম্যানিফেস্ট ফাইলের ট্যাগে android:debuggable="true"সেট করা আছে তা নিশ্চিত হন applicationএবং তারপরে:

  1. আপনার ফোনটি আপনার কম্পিউটারে প্লাগ করুন এবং ফোনে ইউএসবি ডিবাগিং সক্ষম করুন
  2. আপনার অ্যাপ্লিকেশনটির জন্য কোড এবং একটি কর্মক্ষেত্র খুলুন
  3. Eclipse এ, উইন্ডো-> প্রদর্শন-> ডিভাইসগুলিতে যান
  4. ডিভাইসগুলির দর্শন দেখুন যা এখন দৃশ্যমান হওয়া উচিত, আপনার নিজের ডিভাইসটি তালিকাভুক্ত দেখতে হবে
  5. আপনার ডিভাইসটি তালিকাভুক্ত না হলে চালিয়ে যাওয়ার আগে আপনাকে আপনার ফোনের জন্য এডিবি ড্রাইভারগুলি সন্ধান করতে হবে
  6. আপনি যদি কোডের মাধ্যমে পদক্ষেপ নিতে চান তবে আপনার অ্যাপের কোথাও একটি ব্রেকপয়েন্ট সেট করুন
  7. আপনার ফোনে অ্যাপটি খুলুন
  8. ডিভাইস ভিউতে, আপনার ফোনের জন্য এটি ইতিমধ্যে প্রসারিত না হলে এন্ট্রি প্রসারিত করুন এবং আপনার অ্যাপের প্যাকেজের নামটি সন্ধান করুন।
  9. প্যাকেজের নামটিতে ক্লিক করুন এবং ডিভাইসগুলির ভিউটির উপরের ডানদিকে আপনার কয়েকটি অন্যান্য ছোট বোতামের সাথে একটি সবুজ বাগ দেখতে হবে। সবুজ বাগ ক্লিক করুন।
  10. আপনি এখন আপনার অ্যাপ্লিকেশন সংযুক্ত / ডিবাগ করা উচিত।

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

2
বুঝেছি! আমি android:debuggable="true"এ্যাট্রিবিউটটি manifestট্যাগের পরিবর্তে ট্যাগটিতে রেখে দিয়েছিলাম applicationম্যানিফেস্টের মধ্যে! আমার খারাপ :( ধন্যবাদ স্যাম_ডিকে আপনার গাইডেন্সের জন্য অনেক অনেক ধন্যবাদ। এটি আপনাকে না করে না করানো বা সর্বোপরি একটি দীর্ঘ সময়ের হেক নেওয়া হত!
আদিল হুসেন

যখন আমি বিল্ড.gradle এ ডিবাজিযোগ্য কীওয়ার্ডটি যুক্ত করি এবং প্লে স্টোরে প্রকাশ করতে চাইলে এটি এই ত্রুটিটি দেখায়You uploaded a debuggable APK. For security reasons you need to disable debugging before it can be published in Google Play.
হাসনাইন_হমাদ

1
এই উত্তরটি পুরানো। পরিবর্তে androidManifest.xmlআপনার আপডেট করা উচিত build.gradle। অন্যান্য উত্তর দেখুন।
অ্যান্টিমনিট

@ হাসনাইন_হমাদ আপনি কি এর সমাধান পেতে পেরেছিলেন?
শশাঙ্ক সাক্সেনা

126

আমি জানি এটি পুরানো প্রশ্ন, তবে ভবিষ্যতের উল্লেখগুলি। গ্রেডল সহ অ্যান্ড্রয়েড স্টুডিওতে:

buildTypes {
    release {
        debuggable true
        runProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

লাইনটি debuggable trueআমার জন্য কৌশল ছিল।

হালনাগাদ:

গ্রেড 1.0 এর minifyEnabledপরিবর্তে এটি এর পরিবর্তে runProguard। তাকান এখানে


5
নোট করুন গ্রেড 1.0 এর হিসাবে এটি রানপ্রোগার্ডের পরিবর্তে মিনিফাইড করা আছে - দেখুন সরঞ্জামগুলি.অ্যান্ড্রয়েড.com
tech-

এই বর্তমান উত্তরের একটি নোট হিসাবে, আমি নিজেই গুগল প্লে স্টোরে একটি বিতর্কিত রিলিজ প্রেরণ করা এড়িয়ে যাব এবং এটি আপনাকে আগের পুরানো উত্তরে হাসনাইন_হমাদের ক্ষেত্রে যেমন হতে দেয় না। ইনপ্যাপ ক্রয় কোড ট্র্যাকিংয়ের মতো কোনও রিলিজ-ডাউনলোড-স্টোর-ইস্যু পরীক্ষা করার জন্য অস্থায়ীভাবে এটি করা ঝুঁকিপূর্ণ হবে। আপনি বিটা ট্র্যাকের সাথেও কাজ করার চেষ্টা করতে পারেন (সুরক্ষা সমস্যাগুলি এড়াতে আপনার কম্পিউটার থেকে আপনার ফোনে রিলিজ বিল্ড এপিপি স্থানান্তরিত করতে বা এটি জানতে পারে না) )।
অ্যান্ড্রয়েডকোডার

40

ম্যানুয়েলের উপায় ছাড়াও আপনি এখনও ম্যানিফেস্টটি ব্যবহার করতে পারেন।

অ্যান্ড্রয়েড স্টুডিও স্থিতিশীল, আপনি নিম্নলিখিত 2 লাইন যোগ আছে applicationমধ্যে AndroidManifestফাইল:

    android:debuggable="true"
    tools:ignore="HardcodedDebugMode"

প্রথমটি স্বাক্ষরিত APK এর ডিবাগিং সক্ষম করবে এবং দ্বিতীয়টি সংকলন-সময় ত্রুটি রোধ করবে।

এর পরে, আপনি "অ্যান্ড্রয়েড প্রক্রিয়াতে ডিবাগার সংযুক্ত করুন" বোতামের মাধ্যমে প্রক্রিয়াটিতে সংযুক্ত করতে পারেন।


@ জাইবাত্রিক এটি আপনার এপিপি হতে হবে এবং উত্স থেকে আপনাকে ডিবাগারটি সংযুক্ত করতে হবে। যদি আপনি উভয়ই করে থাকেন এবং এটি এখনও কাজ না করে, আরও তথ্য ভাগ করুন এবং আমি সাহায্য করার চেষ্টা করতে পারি
Sandalone

2
আমি পেয়েছি "[মারাত্মক ত্রুটি]: 7: 203: বৈশিষ্ট্য" সরঞ্জামগুলির জন্য উপসর্গ "সরঞ্জাম": উপেক্ষা করুন "উপাদানটির সাথে যুক্ত" অ্যাপ্লিকেশন "আবদ্ধ নয়" " সরঞ্জামগুলি: উপেক্ষা করুন = "হার্ডকোডডিবগমড" এখানে একটি বৈধ কনফিগারেশন?
জেডি

1
আমাকে এর মতো lintOptions { abortOnError false }ব্যবহারের পরিবর্তে আমার অ্যাপ / বিল্ড.গ্রেডে যুক্ত করতে হয়েছিল tools:ignore: android { lintOptions: { abortOnError false } }
YoshiJaeger

আমি পেয়েছি The prefix "tools" for attribute "tools:ignore" associated with an element type "application" is not bound.!
অলিভার ডি

9

আমি নিম্নলিখিতটি দিয়ে চেষ্টা করেছি এবং এটি কাজ করেছে:

release {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

এই উত্তরটি ইতিমধ্যে তিন বছর আগে ম্যানুয়েল লোপেরা এই থ্রেডে দিয়েছেন! এখানে দেখুন: স্ট্যাকওভারফ্লো.com
আদিল হুসেন

@ অ্যাডিলহুসাইন তবে আমি উত্তরটি চেষ্টা করেছিলাম এটি আমার পক্ষে কার্যকর হয়নি। দেখুন আমার মন্তব্যে `মিনিফাইএন্ডএবলড মিথ্যা`-তে পার্থক্য রয়েছে এবং এটি runProguard trueতার ক্ষেত্রে। পরিবর্তনগুলি দেখুন
শৈলেন্দ্র মাদদা

বড় কথা নয় তবে তার উত্তরগুলিতে এই প্রভাবটির আপডেট রয়েছে। যাই হোক। তেমন কিছু না. উত্তর করার জন্য ধন্যবাদ.
আদিল হুসেন

9

আপনার অ্যাপ বিল্ড.gradle এ নিম্নলিখিতগুলি যুক্ত করুন এবং নির্দিষ্ট প্রকাশের বিল্ড বৈকল্পটি নির্বাচন করুন এবং রান করুন

signingConfigs {
        config {
            keyAlias 'keyalias'
            keyPassword 'keypwd'
            storeFile file('<<KEYSTORE-PATH>>.keystore')
            storePassword 'pwd'
        }
    }
    buildTypes {
      release {
          debuggable true
          signingConfig signingConfigs.config
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

5

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

  1. এর সাথে এপিকে ডিসম্পাইল করুন ApkTool (যেমন। apktool d <APK_PATH>) সঙ্কলন করুন
  2. ডিসম্পম্পাইল করা ফাইলগুলি থেকে AndroidManLive.xML খুলুন
  3. সেট android:debuggable="true" মধ্যে applicationট্যাগটি
  4. ApkTool (উদা। apktool b <MODIFIED_PATH>) দিয়ে পরিবর্তিত উত্সটি সঙ্কলন করুন
  5. ডিবাজযোগ্য এপিকে প্রস্তুত (যার স্বাক্ষরযুক্ত মানে স্টোর প্রকাশ করতে পারে না)। আপনি ইচ্ছামত ডিবাগ করতে পারেন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.