ইনস্টল রেফারির লাইব্রেরিটি খেলুন WRITE_EXTERNAL_STORAGE এবং READ_EXTERNAL_STORAGE অনুমতি যুক্ত করে


19

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

অভ্যন্তরীণভাবে এটি কিছু বাহ্যিক পড়ার লেখার অনুমতি যুক্ত করছে।

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

আমাদের কি অনুমতিগুলির সাথে আটকে থাকা দরকার?

বশ্যতা implementation 'com.android.installreferrer:installreferrer:1.1

উত্স https://developer.android.com/google/play/installreferrer/library.html


1
এই 1.1.2 সংশোধন করা উচিত issuetracker.google.com/issues/146115244
ইয়ান জি ক্লিফটন

উত্তর:


4

আমি এই সমস্যাটি জুড়ে এসেছি।

তবে আমার ক্ষেত্রে, 1.1 সংস্করণটি READ_PHONE_STATE অনুমতিও যোগ করছে

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

আমি ইনস্টলার রেফারারের জন্য .আর ফাইলটি ডিসকম্পল করেছি: ১.১ এবং ম্যানিফেস্ট এবং পম ফাইলটি পরীক্ষা করে দেখেছি, এই অনুমতিগুলি যুক্ত করা উচিত তা নির্দেশ করার জন্য এই ফাইলগুলিতে কিছুই নেই।
লাইব্রেরি ম্যানিফেস্ট ফাইলটি কেবল এই অনুমতিটি যুক্ত করে (যা সর্বদা পূর্ববর্তী সংস্করণে থাকে):

<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>

আমি এ সম্পর্কিত কোনও অফিসিয়াল তথ্য খুঁজে পাইনি।
তবে অন্যান্য গুগল গ্রন্থাগারগুলিতে অতীতে অতিরিক্ত, অপ্রয়োজনীয়, অনুমতিগুলি যুক্ত করার সমস্যা রয়েছে যা পরে খুব শীঘ্রই একটি হটফিক্স সংস্করণে সরানো হয়েছে।
উদাহরণস্বরূপ, এটি:
কেন READ_PHONE_STATE অনুমতি যুক্ত করা হয়েছে?

সুতরাং আমি আশা করি এখানেও এটি ঘটবে।


1
লক্ষ্য-এসডকে-সংস্করণ স্পষ্টতভাবে অনুমতি প্রাপ্তির চেয়ে কম হ'ল ইনস্টল রেফারার এই অনুমতি যুক্ত করে। আপনি যদি ম্যানিফেস্ট-মার্জার-রিপোর্টটি একবার দেখে থাকেন তবে আপনি এটি দেখতে পাবেন: uses-permission#android.permission.READ_PHONE_STATE IMPLIED from android/app/src/main/AndroidManifest.xml:1:1-130:12 reason: com.android.installreferrer has a targetSdkVersion < 4 অন্তর্নিহিত অনুমতি সম্পর্কিত তথ্য এই ডকুমেন্টেশনে পাওয়া যাবে: ডেভেলপার.অ্যান্ড্রয়েড
বিল্ড/…

6

ইনস্টল রেফারার এই targetSdkVersionনিষেধাজ্ঞাকে যে সংস্করণে যুক্ত করা হয়েছিল তার তুলনায় এটির মান কম হওয়ার কারণে এটি এই অনুমতিটি যুক্ত করে। আপনি যদি নিজের অ্যাপ্লিকেশনটির বিল্ড ফোল্ডারে উত্পন্ন ম্যানিফেস্ট-মার্জার-রিপোর্টটি একবার দেখে থাকেন তবে আপনি এই তথ্যটি দেখতে পাবেন:

uses-permission#android.permission.READ_PHONE_STATE
IMPLIED from android/app/src/main/AndroidManifest.xml:1:1-130:12 reason: com.android.installreferrer has a targetSdkVersion < 4

অ্যান্ড্রয়েডে এই অন্তর্নিহিত সিস্টেমের অনুমতি কীভাবে কাজ করে সে সম্পর্কিত তথ্য এই ডকুমেন্টেশনে পাওয়া যাবে: https://developer.android.com/studio/build/manifest- নিম#inspect_t__ विसর_স্মৃতি_আর_ফাইন্ড_কনফ্লিক্টস


4

এই উত্তর থেকে :

কারণ তারা নির্ভরতা যুক্ত করেছে added

com.google.android.gms:play-services-measurement:17.2.1

যা সেই অনুমতিগুলি যুক্ত করে।

আপনি ফাইলটিতে এটি খুঁজে পেতে পারেন: ম্যানিফেস্ট-মার্জার-ডিফল্ট-ডিবাগ-রিপোর্ট.txt যা "আপনার অ্যাপ্লিকেশন / বিল্ড / ইন্টারমিডিয়েটস / ম্যানিফেস্ট_সামার_ব্লেম_ফ্লে / ডিবাগ" এর অধীনে রয়েছে

এটা সম্ভবত একটি বাগ। এছাড়াও, installreferrer 1.1.1এটি সমাধান করে না।

সহজ সমাধান ডাউনগ্রেড হয় installreferrerফিরে 1.0এখন জন্য।

তবে আপনার যদি এই সংস্করণটির প্রয়োজন হয় তবে আপনি যোগ করতে পারেন:

<uses-permission android:name="<permission_name>" tools:node="remove" />

এটি অক্ষম করতে। তবে জেনে রাখুন যে আপনি লাইব্রেরির অভ্যন্তরে এমন কোনও এপিআই ব্যবহার করেন যা এটির ক্রাশ হতে পারে , তাই আমি এটি করার পরামর্শ দেব না।


2

এই উত্তরটি উদ্ধৃত করা (এবং সমাপ্ত):

সংস্করণ 1.1 এবং 1.1.1 অনুপস্থিত "minSdkVersion"। এটি স্বয়ংক্রিয়ভাবে এই অনুমতিগুলি জুড়ে দেবে (কারণ @ থিয়াগোলার অনুসারে ডিফল্ট SDK <4)। অনুরূপ ইস্যু এখানে দেখুন: গুগল প্লে পরিষেবাদি 12.0.1

সমাধান

সংস্করণ 1.1.2 এই সমস্যাটি সমাধান করে।

বিস্তারিত

ম্যানিফেস্ট.এক্সএমএল ভি 1.0 এর জন্য ( https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.0 থেকে )

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.installreferrer" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="22" />

    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

    <application />

</manifest>

V1.1 এর জন্য ম্যানিফেস্ট.এক্সএমএল ( https://mvnrepository.com/artifact/com.android.installreferrer/installreferrer/1.1 থেকে )

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.installreferrer">

    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

    <application />

</manifest>

1

ম্যানিফেস্ট-মার্জারের মাধ্যমে কেউ তাত্ত্বিকভাবে তাদের পুরোপুরি সরিয়ে ফেলতে পারে :

<manifest
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />

</manifest>

তবে যদি গ্রন্থাগারটি তখনও প্রত্যাশা অনুযায়ী কাজ করে তবে অন্য গল্প -

এটি বরং ব্যতিক্রম, একটি গুগল গ্রন্থাগারের অপ্রয়োজনীয় অনুমতি প্রয়োজন permission

রিলিজ নোট এবং ডকুমেন্টেশন অনুমতি উল্লেখ না।


1

এই অনুমতিগুলি যুক্ত করা হয়েছে কারণ com.android.installreferrerএকটি টার্গেটএসডিভি ভার্সন <has রয়েছে You আপনি এটি আপনার প্রকল্পের ভিতরে টেমপ্লেড গ্রেডলআউট \ বিল্ড \ আউটপুটস \ লগ ফোল্ডারে অবস্থিত ম্যানিফেস্ট-মার্জার-রিলিজ-রিপোর্ট.txt ফাইলটিতে দেখতে পারেন । এটি একটি বাগ এবং এটি সম্ভবত আরও নতুন সংস্করণে স্থির করা হবে।

এটি ঠিক করার জন্য, আপনাকে com.android.installreferrerনির্ভর করতে হিসাবে কোন প্লাগইন যুক্ত করছে তা খুঁজে বের করতে হবে ।


আমার প্রকল্পে, অপরাধী ছিল ফেসবুক প্লাগইন। এটি com.facebook.android:facebook-core:5.15.xপ্যাকেজটি ব্যবহার করে যা com.android.installreferrer:installreferrer:1.1নির্ভরতা যুক্ত করার জন্য দায়ী ।

সমাধানটি ছিল রোলব্যাক করা com.facebook.android:facebook-core:5.13.0, যার কোনও com.android.installreferrerনির্ভরতা নেই।

ফাইলটি সম্পাদনা করুন FacebookSDK/Plugins/Editor/Dependencies.xmlএবং এই প্যাকেজগুলিকে এতে পরিবর্তন করুন :

<androidPackage spec="com.facebook.android:facebook-core:[5,5.13.0)" />
<androidPackage spec="com.facebook.android:facebook-applinks:[5,5.13.0)" />
<androidPackage spec="com.facebook.android:facebook-login:[5,5.13.0)" />
<androidPackage spec="com.facebook.android:facebook-share:[5,5.13.0)" />

এরপরে, আবার নির্ভরতাগুলি সমাধান করতে ভুলবেন না: Assets > Play Services Resolver > Android Resolver > Force Resolve


1

1.1.2 প্রকাশিত হয়েছে, এটি minSdkVersion সঠিকভাবে যুক্ত করে।

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="22" />
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.