2016-06-17 13 views
11

हर बार सिम्युलेटर में चलते समय मेरा ऐप क्रैश हो रहा है जब भी मैं फोटो लाइब्रेरी के लिए प्राधिकरण का अनुरोध करने का प्रयास करता हूं। मैं didFinishLaunchingWithOptions में मेरे AppDelegate में निम्नलिखित कोड का उपयोग कर रहा:xcode 8 PHPhotoLibrary.request प्रमाणीकरण क्रैश

if PHPhotoLibrary.authorizationStatus() != PHAuthorizationStatus.authorized { 
    PHPhotoLibrary.requestAuthorization({ (status: PHAuthorizationStatus) in 

    }) 
} 

तेज 3.0 के साथ xcode 8 बीटा का उपयोग करना।

उत्तर

23

मेरे परीक्षण में, आईओएस 10 उपयोगी त्रुटि संदेशों को तब तक आउटपुट करना पसंद नहीं करता जब तक कि आप किसी वास्तविक डिवाइस पर नहीं चल रहे हों। इस विशेष मामले में, आपने शायद अपनी Info.plist फ़ाइल में कुंजी NSPhotoLibraryUsageDescription प्रदान नहीं की है, और यह मान प्राधिकरण का अनुरोध करने से पहले प्रदान किया जाना चाहिए।

+0

धन्यवाद: या बस स्रोत कोड दृश्य में अपने Info.plist खोलने के लिए और निम्नलिखित जोड़ें। मैंने अपनी प्लिस्ट फ़ाइल को संशोधित करने में बहुत अधिक समय नहीं लगाया है। क्या यह प्लस दबाकर और मैन्युअल रूप से NSPhotoLibraryUsage डिस्क्रिप्शन टाइप करने और स्ट्रिंग को टाइप करने के रूप में सरल है? इसके कारण मुद्दे आगे बढ़ेंगे? मैंने सोचा कि वह संपत्ति एक सिस्टम संपत्ति थी और सिस्टम अलर्ट स्वीकृति के अलावा किसी ऐप के भीतर संशोधित नहीं की जा सकी। – alionthego

+2

उन चरणों को करें जिन्हें आपने कहा था, फिर दाईं ओर बॉक्स में कुछ टेक्स्ट दर्ज करें: "हमें आपकी तस्वीरों को पढ़ने की जरूरत है ताकि हम कुछ ग्लैब्स ग्रोक कर सकें।" यह उपयोगकर्ता को यह बताने के लिए दिखाया जाएगा कि आप एक्सेस क्यों चाहते हैं, और यह आईओएस में मानक प्रक्रिया है। [मैं अभी आईओएस 10 पर एक पुस्तक लिख रहा हूं] (https://gumroad.com/l/ios10) और पहला अध्याय बिल्कुल इस प्रक्रिया को शामिल करता है। – TwoStraws

+0

यह बढ़िया है। अच्छी तरह से काम। आपकी सहायता के लिए बहुत धन्यवाद। – alionthego

2

डिवाइस पर फ़ोटो तक पहुंच की अनुमति देना है। नीचे अपनी कुंजी और स्ट्रिंग को अपनी info.plist में जोड़ें। संपत्ति सूची दृश्य में स्वतः पूर्ण "गोपनीयता - फोटो लाइब्रेरी उपयोग विवरण" है। आपके उत्तर के लिए

<key>NSPhotoLibraryUsageDescription</key> 
<string>We need access to your photos.</string> 
संबंधित मुद्दे