সিক্রেটস গ্রেডল প্লাগইন

Google দৃঢ়ভাবে সুপারিশ করে যে আপনি আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমে একটি API কী চেক করবেন না। পরিবর্তে, আপনার এটি একটি স্থানীয় secrets.properties ফাইলে সংরক্ষণ করা উচিত, যা আপনার প্রকল্পের রুট ডিরেক্টরিতে অবস্থিত কিন্তু সংস্করণ নিয়ন্ত্রণ থেকে বাদ দেওয়া হয়েছে, এবং তারপর API কী পড়তে Android এর জন্য সিক্রেটস গ্রেডল প্লাগইন ব্যবহার করুন৷

অ্যান্ড্রয়েডের জন্য সিক্রেটস গ্রেডল প্লাগইন একটি সংস্করণ নিয়ন্ত্রণ সিস্টেমে চেক করা হয়নি এমন বৈশিষ্ট্য ফাইল থেকে API কী সহ গোপনীয়তাগুলি পড়ে। প্লাগইনটি তখন সেই বৈশিষ্ট্যগুলিকে গ্রেডল-জেনারেটেড BuildConfig ক্লাসে এবং অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে ভেরিয়েবল হিসাবে প্রকাশ করে।

একটি API কী অ্যাক্সেস করতে Android এর জন্য সিক্রেটস গ্রেডল প্লাগইন ব্যবহারের একটি সম্পূর্ণ উদাহরণের জন্য, একটি অ্যান্ড্রয়েড স্টুডিও প্রকল্প সেট আপ করুন দেখুন।

ইনস্টলেশন এবং ব্যবহার

আপনার Google মানচিত্র প্রকল্পে Android এর জন্য Secrets Gradle Plugin ইনস্টল করতে:

  1. অ্যান্ড্রয়েড স্টুডিওতে, আপনার শীর্ষ-স্তরের build.gradle বা build.gradle.kts ফাইলটি খুলুন এবং buildscript অধীনে dependencies উপাদানে নিম্নলিখিত কোডটি যোগ করুন।

    গ্রোভি

    buildscript {
        dependencies {
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
        }
    }

    কোটলিন

    buildscript {
        dependencies {
            classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1")
        }
    }
    
  2. আপনার মডিউল-স্তরের build.gradle ফাইলটি খুলুন এবং plugins উপাদানটিতে নিম্নলিখিত কোডটি যোগ করুন।

    গ্রোভি

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    কোটলিন

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. আপনার মডিউল-স্তরের build.gradle ফাইলে, নিশ্চিত করুন যে targetSdk এবং compileSdk 34-এ সেট করা আছে।
  4. ফাইলটি সংরক্ষণ করুন এবং Gradle এর সাথে আপনার প্রকল্প সিঙ্ক করুন
  5. আপনার শীর্ষ-স্তরের ডিরেক্টরিতে secrets.properties ফাইলটি খুলুন এবং তারপরে নিম্নলিখিত কোডটি যোগ করুন। আপনার API কী দিয়ে YOUR_API_KEY প্রতিস্থাপন করুন। এই ফাইলে আপনার কী সংরক্ষণ করুন কারণ secrets.properties একটি সংস্করণ নিয়ন্ত্রণ সিস্টেমে চেক করা থেকে বাদ দেওয়া হয়েছে৷
    PLACES_API_KEY=YOUR_API_KEY
  6. ফাইলটি সংরক্ষণ করুন।
  7. আপনার শীর্ষ-স্তরের ডিরেক্টরিতে local.defaults.properties ফাইল তৈরি করুন, secrets.properties ফাইলের মতো একই ফোল্ডার, এবং তারপরে নিম্নলিখিত কোডটি যোগ করুন।

    PLACES_API_KEY=DEFAULT_API_KEY

    এই ফাইলটির উদ্দেশ্য হল API কীটির জন্য একটি ব্যাকআপ অবস্থান প্রদান করা যদি secrets.properties ফাইলটি না পাওয়া যায় যাতে বিল্ডগুলি ব্যর্থ না হয়৷ এটি ঘটতে পারে যদি আপনি একটি সংস্করণ নিয়ন্ত্রণ সিস্টেম থেকে অ্যাপটিকে ক্লোন করেন যা secrets.properties বাদ দেয় এবং আপনি এখনও আপনার API কী প্রদান করার জন্য স্থানীয়ভাবে একটি secrets.properties ফাইল তৈরি করেননি।

  8. ফাইলটি সংরক্ষণ করুন।
  9. অ্যান্ড্রয়েড স্টুডিওতে, আপনার মডিউল-স্তরের build.gradle বা build.gradle.kts ফাইল খুলুন এবং secrets সম্পত্তি সম্পাদনা করুন। secrets সম্পত্তি বিদ্যমান না থাকলে, এটি যোগ করুন।

    secrets.propertiespropertiesFileName সেট করতে প্লাগইনের বৈশিষ্ট্যগুলি সম্পাদনা করুন, defaultPropertiesFileName to local.defaults.properties সেট করুন এবং অন্য কোনো বৈশিষ্ট্য সেট করুন।

    গ্রোভি

    secrets {
        // Optionally specify a different file name containing your secrets.
        // The plugin defaults to "local.properties"
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    
        // Configure which keys should be ignored by the plugin by providing regular expressions.
        // "sdk.dir" is ignored by default.
        ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore"
        ignoreList.add("sdk.*")       // Ignore all keys matching the regexp "sdk.*"
    }
            

    কোটলিন

    secrets {
        // Optionally specify a different file name containing your secrets.
        // The plugin defaults to "local.properties"
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    
        // Configure which keys should be ignored by the plugin by providing regular expressions.
        // "sdk.dir" is ignored by default.
        ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore"
        ignoreList.add("sdk.*")       // Ignore all keys matching the regexp "sdk.*"
    }
            

এরপর কি