2016-12-02 9 views
5

ध्यान दें: यह सवाल मैं सभी में कोई <uses-permissions/> टैग के साथ Plugins/Android/ फ़ोल्डर के अंतर्गत एकता परियोजना में एक बहुत साफ एंड्रॉयड मैनिफ़ेस्ट फ़ाइल है Unity3Dकैसे एकता एंड्रॉयड में किसी अनुमति के स्रोत खोजने के लिए

लिए विशिष्ट है। मेरा मानना ​​है कि अंतिम एपीके में कुछ अनुमतियां एंड्रॉइड प्लेयर सेटिंग्स से उदाहरण के लिए READ_EXTERNAL_STORAGE से आती हैं। मेरी गियर वी.आर. परियोजना में मैं अंतिम प्रकट में जोड़ा लाइनों जो Temp/StagingArea/ में पहुँचा जा सकता है निम्न देखें:

<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-feature android:name="android.hardware.microphone" android:required="false" /> 

अब यह निश्चित प्लगइन्स मैं अपने प्रोजेक्ट में है में से एक से आ रही है (मैं कई प्लग है)।

मेरा ऐप ओकुलस से अस्वीकार कर दिया जा रहा है कह

आपका एप्लिकेशन को उपयोगकर्ता अनुमतियाँ अनुचित तरीके से उपयोग के लिए जरूरत से ज्यादा उपयोगकर्ता अनुमतियों के लिए पूछ रहा है।

मुझे एक कामकाज here मिला, लेकिन मैं ऐसा कुछ नहीं करना चाहता क्योंकि इससे एक बार फिर से ऐप अस्वीकार हो सकता है।

तो

वहाँ एक रास्ता मैं पता कर सकते हैं कि जहां इस अनुमति से आ रही है है?

यह पता लगाने के लिए कि मेरी स्क्रिप्ट में कुछ कोड है या नहीं, जिससे एकता को इस अनुमति को शामिल किया जा सकता है?

धन्यवाद

+0

खेद मैं, उस लिंक का उपयोग नहीं कर सकते हैं पोस्ट कर सकते हैं (जब तक यह एक कस्टम संपादक स्क्रिप्ट विशेष रूप से प्रकट फाइलों को सिलाई के लिए बनाया गया है) प्रश्न का लिंक जवाब नहीं है? –

+0

@NikaKasradze अब प्रयास करें –

उत्तर

2

एकता अनुमतियों के लिए मक्खी पर निर्माण के समय के दौरान के रूप में eriQue of Unity Technologies ने उल्लेख इस कोड की खराबी, और अवांछित व्यवहार को रोकने के लिए है जोड़ देगा।

आप अपने नए मैनिफेस्ट को देखने के लिए इस Apk-decompiler जैसे टूल का उपयोग कर सकते हैं, और यह किस अनुमति का उपयोग करता है। इसके आधार पर आप कुछ फ़ंक्शंस देख सकते हैं जो इन अनुमतियों को ट्रिगर कर सकते हैं।

कुछ फ़ंक्शन जैसे isGeniune को कई अनुमतियों की आवश्यकता होगी क्योंकि यह बाहरी सर्वर के विरुद्ध सत्यापन का उपयोग करेगा।

वैकल्पिक रूप से आप अपने मैनिफेस्ट को डीकंपिल्ड एपीके में भी बदल सकते हैं, मैन्युअल रूप से एक इच्छित के साथ मैनिफेस्ट को बदल सकते हैं, और इसे इस्तीफा दे सकते हैं। यह कुछ और कष्टप्रद काम है, लेकिन अगर उचित त्रुटि लॉगिंग हो रही है तो यह समस्याग्रस्त कार्यों को ट्रैक करने की प्रक्रिया को तेज कर सकता है।

अद्यतन

मैं भी नीचे टिप्पणी में उल्लेख किया है। कार्यों को इंगित करने का कोई वास्तविक तरीका नहीं है। लेकिन एक त्वरित जांच सूची चोट नहीं पहुंचा सकती है, लेकिन कुछ काम की आवश्यकता होगी

  • क्या आप कोई बाहरी सेवाएं उपयोग कर रहे हैं?

बहुत सारी बाहरी सेवाएं, Google, ट्विटर, फेसबुक एपीआई और उपकरणों के बारे में सोचें अतिरिक्त अनुमतियों की आवश्यकता होती है। आमतौर पर ये भंडारण/नेटवर्क से संबंधित होते हैं, लेकिन उपकरण/एपीआई के लक्ष्यों के आधार पर, यह कई और हो सकता है।

कोई एपीआई देखने के लिए उपकरण/एपिस के साथ और बिना अपने एपीके बनाने का प्रयास करें।

  • क्या आप एकता विज्ञापन का उपयोग कर रहे हैं?

एकता विज्ञापनों से ही 3 अनुमतियों का उपयोग करता है, और पुराने संस्करणों के अभी भी 5 का इस्तेमाल करते हैं हो सकता है आप अपने विज्ञापनों का उपयोग कर रहे हैं, तो आप प्रदान करने के लिए इन लेने के लिए होगा।

  • क्या आपने एकता आंकड़े अक्षम किए हैं?

कभी उन फैंसी stats पर देखा गया एकता प्रदान करने में सक्षम है? खैर, जब तक आप इसे अक्षम नहीं करते हैं, तो आप इसमें भी भाग लेते हैं।

इन आंकड़ों को कई अनुमतियों की आवश्यकता होती है, क्योंकि फ़ोन का हार्डवेयर स्तर पर विश्लेषण किया जाएगा और साथ ही प्रदान किए गए आंकड़ों में भी देखा जाएगा।

  • क्या आप वास्तव में अपने सभी एपीआई/उपकरण/संपत्ति आवश्यकताओं का उपयोग कर रहे हैं?

आप कुछ एपीआई, उपकरण या सिर्फ बाहरी पार्टी कि हो सकता है या कोड शामिल नहीं हो सकता है कि निर्भरता की आवश्यकता से किसी भी dll के बारे में शामिल हो सकता है। जैसे ही वे 100% स्वच्छ नहीं होते हैं, और उनमें उनकी कार्यक्षमता के लिए प्रासंगिक अनुमति आवश्यकताओं या आपके लिए आवश्यक कार्यक्षमता शामिल हो सकती है।

कहें, कुछ विज्ञापन सेवा उपयोगकर्ता माइक्रोफ़ोन तक पहुंचना चाहती है। लेकिन चूंकि आप अपने "ओएमजी मुखर प्रतिक्रिया विश्लेषण" कार्यों का उपयोग नहीं कर रहे हैं, इसलिए यह अनुमति आपके लिए आवश्यक नहीं है।

इन अनुमतियों को या तो मैन्युअल रूप से हटाया जा सकता है, जैसा कि मैंने पहले अपने उत्तर में वर्णित किया था। या post build marked editor स्क्रिप्ट जैसे स्वचालन के कुछ रूपों के माध्यम से।

प्रश्न विशिष्ट: अगर वहाँ परियोजना में स्क्रिप्ट में से किसी में Microphone पुस्तकालय के लिए एक कॉल है

RECORD_AUDIO अनुमति एंड्रॉयड मैनिफ़ेस्ट फ़ाइल में अपनी राह बनाता। इससे कोई फर्क नहीं पड़ता कि स्क्रिप्ट दृश्य में मौजूद है या नहीं। इस विशिष्ट मामले में, यदि Oculus Platform SDK प्रोजेक्ट में आयात किया जाता है (जो एक स्टोर आवश्यकता है) वहां कुछ स्क्रिप्ट हैं जो Microphone लाइब्रेरी का उपयोग करती हैं। इसलिए यदि आप किसी भी ऑडियो रिकॉर्डिंग सुविधा का उपयोग नहीं करते हैं जैसे ध्वनि इनपुट, बस OculusPlatform/Scripts के तहत निम्न फ़ाइलों को हटाएं: माइक्रोफ़ोन इनपुट सीएस, आईएमआईसीआरओफोन सीएस, माइक्रोफोन इनपुटपुट सीएस

+0

प्रयास के लिए धन्यवाद। मैं पहले से ही इन सभी चीजों को जानता हूं और इसके बारे में भी मेरे प्रश्न में उल्लेख किया है। मुझे प्रोजेक्ट निर्देशिका में पहले से ही Temp/StagingArea फ़ोल्डर में अंतिम मैनिफेस्ट तक पहुंचने के लिए किसी भी डिकंपेलर का उपयोग करने की आवश्यकता नहीं है। कृपया पोस्ट के अंत में मेरे दो सवालों का जवाब देने का प्रयास करें। और मैं विशेष रूप से प्रश्न में उल्लिखित अनुमतियों के स्रोत के बारे में बात कर रहा हूं। धन्यवाद :) –

+0

मैं एक निरंतर समाधान की तलाश में हूं। अनुमतियों को हटाने से कुछ प्लगइन तोड़ सकता है और मुझे वह नहीं चाहिए। मुझे यकीन है कि मैं बिल्कुल रिकॉर्डिंग नहीं कर रहा हूं या माइक का उपयोग नहीं कर रहा हूं। तो मुझे अपने प्रोजेक्ट में कोड के उस हिस्से की भी आवश्यकता क्यों है। मैं अनुमति की बजाय अनुमति के स्रोत को बेहतर ढंग से हटा देता हूं। –

+0

@UmairM मैं समझता हूं कि आप एक सतत समाधान चाहते हैं, लेकिन यह इंगित करने के लिए नहीं है। हालांकि, यदि आवश्यक हो तो आप '[पोस्टबिल्ड]' घटनाओं का उपयोग करके भी मैनिफेस्ट को प्रोग्रामिक रूप से प्रतिस्थापित कर सकते हैं। कुछ मैनुअल श्रम के बाद इसे एक सतत समाधान बनाना। –

1

@ एमएक्स-डी सही है। मैं बस इसे ठीक करने का एक और तरीका जोड़ना चाहता हूं: बिल्ड सेटिंग्स में आप Google Android Project पर टिक कर सकते हैं जो एंड्रॉइड स्टूडियो प्रोजेक्ट उत्पन्न करेगा। वहां से आप अनुमतियों को ओवरराइड करने के लिए एंड्रॉइड स्टूडियो के मेनिफेस्ट विलय टूल का उपयोग कर सकते हैं।

प्रश्न # 1: जो पुस्तकालय अतिरिक्त अनुमति में फेंक रहा है पता लगाने के लिए एक ही रास्ता, एक-एक करके पुस्तकालयों को दूर करने के परियोजना निर्माण और .apk प्रकट जाँच है। दुर्भाग्य से एकता एंड्रॉइड स्टूडियो उत्पादन के रूप में लचीला नहीं है।

प्रश्न # 2: आप कोड के माध्यम से एकता में अनुमतियाँ नहीं जोड़ सकते

+0

कृपया एमएक्स-डी के उत्तर के तहत मेरी टिप्पणियों पर नज़र डालें। और मेरे दूसरे प्रश्न में मैं विशेष रूप से कोड के बारे में बात कर रहा था जिसके लिए एक निश्चित अनुमति की आवश्यकता है। उदाहरण के लिए 'isGeniune' या' Application.internetReachability' –

संबंधित मुद्दे