गुम उपयोग विवरण (Xcode8) के कारण एप्लिकेशन अस्वीकृत


91

इसलिए मुझे आज यह मेल मिला कि मेरे ऐप के नवीनतम निर्माण को कुछ गुम उपयोग विवरणों के कारण आईट्यून्स कनेक्ट द्वारा अस्वीकार कर दिया गया था। सटीक होना:

यह एप्लिकेशन उपयोग विवरण के बिना गोपनीयता-संवेदनशील डेटा तक पहुंचने का प्रयास करता है। एप्लिकेशन के Info.plist में उपयोगकर्ता के लिए एक स्ट्रिंग मान के साथ एक NSContactsUsageDescription कुंजी होनी चाहिए जिसमें उपयोगकर्ता इस डेटा का उपयोग करता है।

यह एप्लिकेशन उपयोग विवरण के बिना गोपनीयता-संवेदनशील डेटा तक पहुंचने का प्रयास करता है। एप्लिकेशन के Info.plist में एक NSCalendarsUsageDescription कुंजी होनी चाहिए जिसमें उपयोगकर्ता को यह बताते हुए स्ट्रिंग मान दिया जाए कि ऐप इस डेटा का उपयोग कैसे करता है।

यह एप्लिकेशन उपयोग विवरण के बिना गोपनीयता-संवेदनशील डेटा तक पहुंचने का प्रयास करता है। एप्लिकेशन के Info.plist में एक NSPhotoLibraryUsageDescription कुंजी होनी चाहिए जिसमें उपयोगकर्ता को यह बताते हुए स्ट्रिंग मान दिया जाए कि ऐप इस डेटा का उपयोग कैसे करता है।

यह एप्लिकेशन उपयोग विवरण के बिना गोपनीयता-संवेदनशील डेटा तक पहुंचने का प्रयास करता है। एप्लिकेशन के Info.plist में उपयोगकर्ता को यह बताते हुए एक स्ट्रिंग मान के साथ एक NSBluaxyPeripheralUsageDescription कुंजी होनी चाहिए कि ऐप इस डेटा का उपयोग कैसे करता है।

यह एप्लिकेशन उपयोग विवरण के बिना गोपनीयता-संवेदनशील डेटा तक पहुंचने का प्रयास करता है। एप्लिकेशन के Info.plist में उपयोगकर्ता को यह बताते हुए एक स्ट्रिंग मान के साथ NSMicrophoneUsageDescription कुंजी होनी चाहिए कि ऐप इस डेटा का उपयोग कैसे करता है।

यह एप्लिकेशन उपयोग विवरण के बिना गोपनीयता-संवेदनशील डेटा तक पहुंचने का प्रयास करता है। एप्लिकेशन के Info.plist में उपयोगकर्ता को यह बताते हुए एक स्ट्रिंग मान के साथ NSMotionUsageDescription कुंजी होनी चाहिए कि ऐप इस डेटा का उपयोग कैसे करता है।

एक बार जब इन मुद्दों को ठीक कर लिया गया है, तो आप सही किए गए बाइनरी को फिर से शुरू कर सकते हैं।

मुझे पता चला कि ये iOS 10 के साथ अनिवार्य हो गए हैं, लेकिन समस्या केवल यह है कि मेरा ऐप इनमें से किसी को भी एक्सेस करने की अनुमति नहीं दे रहा है। मुझे लगा कि केवल विवरण अनिवार्य था यदि आपने वास्तव में अनुमति का अनुरोध किया था?

क्या यह इसलिए है क्योंकि इन अनुमतियों का अनुरोध करने के लिए मेरे आश्रितों में से एक (कोकोपोड्स) में कुछ कोड हो सकते हैं? या क्या ये विवरण अनिवार्य हैं, भले ही मैं कभी भी उपयोगकर्ताओं के कैलेंडर, संपर्क आदि को देखने का अनुरोध नहीं करता?


3
मेरे अनुभव से - ये केवल तभी आवश्यक हैं जब आप अनुमति का अनुरोध कर रहे हों। तो शायद कुछ निर्भरता आपके लिए यह कर रही है। इसके अलावा, इन सभी अनुमतियों से मछली की गंध आती है खासकर यदि आपका ऐप एक साधारण टूडू सूची है। शायद कुछ निर्भरता फ़िशिंग जा रही है?
ईमंतस

क्या आप अपने PodFileऔर आपके द्वारा उपयोग किए जाने वाले पुस्तकालयों की सूची पोस्ट कर सकते हैं (यदि आप कुछ बाहर के कोकोपोड्स का उपयोग करते हैं)?
जुलिएन क्वेरे

यह था github.com/nickoneill/PermissionScope .. आपकी मदद के लिए धन्यवाद!
किमफर

ُ उनके द्वारा समझाया गया और उपयोग दिखाने के लिए: iosdevcenters.blogspot.com/2016/09/…
Saeid

मेरे पास ठीक वैसी ही समस्या है और मुझे लगता है कि यह कारण है: फली 'रिएक्टनैविपियंस': पथ => '../node_modules/react-native-permissions'
luky

जवाबों:


33

आपके द्वारा उपयोग की जाने वाली किसी भी सामग्री या आपके द्वारा लिंक किए गए किसी भी ढांचे के लिए विवरण अनिवार्य हैं। यदि सामग्री का उपयोग वर्णन नहीं किया गया था, तो सामग्री तक पहुंचने के प्रयास में त्रुटियां उत्पन्न होती हैं, इसलिए यदि आप उन त्रुटियों को प्राप्त कर रहे हैं, तो आपका ऐप उनसे अनुरोध कर रहा होगा। आपको पता होना चाहिए कि आपके ऐप या उसके ढांचे को इनकी आवश्यकता क्यों है और अपने ऐप के info.plist में उपयुक्त उपयोग विवरण जोड़ें।

या अधिक आदर्श रूप से, यदि आपको पहुंच की आवश्यकता नहीं है, तो देखें कि क्या इसका अनुरोध न करने का कोई तरीका है (या अनावश्यक रूप से करने वाले चौखटे का उपयोग करें)।


11
मैं अपने जीवन की कल्पना नहीं कर सकता था कि मैं इन सभी अनुमतियों का अनुरोध करने वाला एक पुस्तकालय जोड़ूंगा। लेकिन यह बहुत स्पष्ट था जब मैंने इसे पाया: github.com/nickoneill/PermissionScope
KimHafr

1
हाँ इस तरह एक रूपरेखा एक महान विचार नहीं हो सकता है क्योंकि यह आपके ऐप को ज़रूरत से ज़्यादा अनुमति देने का तरीका बताता है।
मैथ्यू सीमैन

3
मुझे लगता है कि यह एक फीचर की अधिक है तो बग .. आईट्यून्स कनेक्ट से पता चलता है कि आपके ऐप में कहीं कोई व्यक्ति अनुमति का अनुरोध कर सकता है। उस स्थिति में आपको इन सभी के लिए उपयोग विवरण भरना होगा, यदि आप वास्तव में अनुमतियों के कोड में से कुछ को लागू कर सकते हैं। मुझे रूपरेखा भी पसंद है और मैं इसे बदलने के लिए तैयार नहीं हूं। इसलिए मैंने कुछ फर्जी टेक्स्ट भरे, और ऐप को मंजूरी दे दी गई। मैंने इसे AppStore में जमा कर दिया है, इसलिए उम्मीद है कि यह ठीक हो जाएगा :-)
किमफर

15
यह पता लगाने के लिए एक तरीका चाहिए कि कौन सी रूपरेखा उन अनुमति का अनुरोध कर रही है?
नवविवाहिता

5
Neobie - क्या आपने पाया कि आप अनुमतियों का अनुरोध करने वाले चौखटे का पता कैसे लगा सकते हैं?
नितेश

140

iOS 10 को info.plist में अनुमति देनी चाहिए। इस BLOG की समीक्षा करें : - सेटिंग्स-इन-आईओएस -10 आपको सभी विचार मिलते हैं।

अपनी त्रुटि लॉग के आधार पर info.plist फ़ाइल आधार में अनुमति जोड़ें

नोट: स्ट्रिंग मान में अनुमति के लिए उचित कारण लिखें अन्यथा ऐप्पल फिर से ऐप को अस्वीकार कर देता है।

NSCameraUsageDescription

<key>NSCameraUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSContactsUsageDescription

<key>NSContactsUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSPhotoLibraryUsageDescription

<key>NSPhotoLibraryUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSBluetoothPeripheralUsageDescription

<key>NSBluetoothPeripheralUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSMicrophoneUsageDescription

<key>NSMicrophoneUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSMotionUsageDescription

<key>NSMotionUsageDescription</key>
    <string>$(PRODUCT_NAME) motion use.</string>

NSLocationAlwaysUsageDescription

<key>NSLocationAlwaysUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSLocationUsageDescription

<key>NSLocationUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSLocationWhenInUseUsageDescription

<key>NSLocationWhenInUseUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSRemindersUsageDescription

<key>NSRemindersUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSSiriUsageDescription

<key>NSSiriUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSVideoSubscriberAccountUsageDescription

<key>NSVideoSubscriberAccountUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSSpeechRecognitionUsageDescription

<key>NSSpeechRecognitionUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

NSCalendarsUsageDescription

<key>NSCalendarsUsageDescription</key>
    <string>You have to describe the real usage for a human.</string>

यहां छवि विवरण दर्ज करें


क्या यह "$ (PRODUCT_NAME)" के बजाय "$ {PRODUCT_NAME}" नहीं होना चाहिए? "{}" के बजाय "()"।
बैकस्लैश-एफ

@ बैकस्लैश-एफ, कृपया नई परियोजना में मौजूदा प्लिस्ट फ़ाइल की जांच करें और यह होना चाहिए $(PRODUCT_NAME)। आप Bundle nameप्लिस्ट फाइल की तरह डिफॉल्ट प्रॉपर्टी देख सकते हैं ।
जयेश थानकी

1
कृपया इस तरह से एक सामान्य विवरण पर ध्यान दें कि अब आपको ऐप स्टोर की मंजूरी नहीं मिलेगी। हम इसी तरह के विवरण के लिए सिर्फ दो बार डिंग किए गए थे। आपको मानव के लिए वास्तविक उपयोग का वर्णन करना होगा
ओ'रोनी

9

आप अपनी जानकारी में जोड़ सकते हैं।

<key>NSCalendarsUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>Explain the reasons for accessing...</string>

आदि।

आशा है कि किसी की मदद करेगा ...


6

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


3

कैलेंडर: कुंजी: गोपनीयता - कैलेंडर उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) कैलेंडर ईवेंट

अनुस्मारक: कुंजी: गोपनीयता - अनुस्मारक उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) अनुस्मारक उपयोग

संपर्क : कुंजी: गोपनीयता - संपर्क उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) संपर्क उपयोग

फोटो: कुंजी: गोपनीयता - फोटो लाइब्रेरी उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) फोटो का उपयोग

ब्लूटूथ साझाकरण: कुंजी: गोपनीयता - ब्लूटूथ परिधीय उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) ब्लूटूथ परिधीय उपयोग

माइक्रोफोन: कुंजी: गोपनीयता - माइक्रोफोन उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) माइक्रोफोन उपयोग

कैमरा: कुंजी: गोपनीयता - कैमरा उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) कैमरा उपयोग

स्थान: कुंजी: गोपनीयता - स्थान हमेशा उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) स्थान उपयोग

कुंजी: गोपनीयता - स्थान जब उपयोग उपयोग विवरण
मूल्य में: $ (PRODUCT_NAME) स्थान उपयोग

हीथ: कुंजी: गोपनीयता - स्वास्थ्य शेयर उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) हीथ शेयर उपयोग

कुंजी: गोपनीयता - स्वास्थ्य अपडेट उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) हीथ अपडेट उपयोग

HomeKit: कुंजी: गोपनीयता - HomeKit उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) होम किट का उपयोग करें

मीडिया लाइब्रेरी: कुंजी: गोपनीयता - मीडिया लाइब्रेरी उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) मीडिया लाइब्रेरी उपयोग करते हैं

मोशन: कुंजी: गोपनीयता - मोशन उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) गति उपयोग

भाषण पहचान: कुंजी: गोपनीयता - भाषण मान्यता उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) भाषण उपयोग

सिरीकिट: कुंजी: गोपनीयता - सिरी उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) सिरी उपयोग

टीवी प्रदाता: कुंजी: गोपनीयता - टीवी प्रदाता उपयोग विवरण
मूल्य: $ (PRODUCT_NAME) tvProvider उपयोग


0

किसी को भी आश्चर्य हो रहा है कि अचानक आपके ऐप में अब ये सभी अनुमति सेटिंग्स पहले से हैं क्योंकि यह CocoaPods या कार्थेज के कारण हो सकता है - उन्होंने इन सभी अनुमतियों को हुक में डाल दिया। मैंने कॉर्डोवा-प्लगइन-फायरबेस का उपयोग करने के लिए अपने ऐप को अपग्रेड किया है जिसमें एक व्यापक कोकोपोड्स (और निर्भरता) की स्थापना है। आप इन अनुमतियों को बंद कर सकते हैं इससे पहले कि आप अपनी परियोजना की जड़ में एक अनुमतियांConfiguration.xcconfig डालकर अपनी परियोजना में कोकोपोड स्थापित करें - आप इस बारे में अधिक पढ़ सकते हैं: https://cocoapods.org/pods/Permission#installation

यह सब मुझे आश्चर्यचकित कर गया जब मेरे ऐप के नए संस्करण को Info.plist फ़ाइल से 7 अनुमतियाँ कुंजी / स्ट्रिंग के साथ अस्वीकार कर दिया गया। फिर मुझे अपने प्रोजेक्ट में यह पता लगाने के लिए खुदाई करनी पड़ी कि यह क्या हो रहा है क्योंकि मेरे ऐप को इनमें से किसी भी परमिशन (कभी नहीं) की जरूरत नहीं है।

यह मौजूद हो सकता है, लेकिन इस समय मुझे पॉड्स इंटीग्रेशन के बाद परमिशन हटाने का कोई तरीका नहीं मिल रहा है ... मुझे अपना प्रोजेक्ट शुरू किए बिना यह करने के लिए चारों ओर खुदाई करनी होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.