swift - आज एक्सटेंशन से CoreMedia अनुमतियों को प्राप्त करने में विफल रहा




ios-app-extension ios8-today-widget (10)

मैं अपने उद्देश्य-सी ऐप में स्विफ्ट में आज का विस्तार जोड़ने की कोशिश कर रहा हूं। मैं इस संदेश को अपने डीबगर लॉग में प्राप्त करता रहता हूं: Failed to inherit CoreMedia permissions from 3005: (null) । पूर्व संख्या 3005 हर बार अलग है। मैं विजेट के भीतर से NSUserDefaults से पढ़ रहा हूं लेकिन मैं ऐप में पढ़ रहा / लिख रहा हूं। मेरे TodayViewController में एकमात्र कोड यह निम्न है:

override func viewDidLoad() {
    super.viewDidLoad()

    let formatter = NSNumberFormatter()
    formatter.numberStyle = .CurrencyStyle
    totalLabel.text = formatter.stringFromNumber(0)
    coinsLabel.text = formatter.stringFromNumber(0)

    formatter.maximumFractionDigits = 0
    billsLabel.text = formatter.stringFromNumber(0)

}

func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
    return UIEdgeInsetsMake(8.0, 16.0, 8.0, 16.0)
}

func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {
    // Perform any setup necessary in order to update the view.

    // If an error is encountered, use NCUpdateResult.Failed
    // If there's no update required, use NCUpdateResult.NoData
    // If there's an update, use NCUpdateResult.NewData

    completionHandler(NCUpdateResult.NewData)
}

आज के विस्तार के मुख्यधारा में जांचें, "प्रारंभिक दृश्य नियंत्रक" विकल्प के साथ व्यू कंट्रोलर सक्षम किया गया था।


इस त्रुटि संदेश के साथ मेरा अनुभव यहां है। मेरे पास 4 व्यू कंट्रोलर के साथ एक स्टोरीबोर्ड था। मैंने उन सभी पर एक रिफैक्टर निकाला, इसलिए अब मेरे पास 5 स्टोरीबोर्ड हैं, जिनमें से 4 में कंट्रोलर और मूल, "मुख्य" था, उनमें से केवल स्टोरीबोर्ड संदर्भ थे।

अच्छा ... यह बुरा है। ऐसा मत करो।

सबकुछ काम करता था जब मैंने प्रारंभिक स्टोरीबोर्ड को मूल स्टोरीबोर्ड फ़ाइल में रखा था, इसलिए मैंने उनमें से केवल एक को रिफैक्टर नहीं किया।


बहुत भ्रामक त्रुटि। जैसा ऊपर बताया गया है। अपने व्यू कंट्रोलर का चयन करें और समस्या को ठीक करने के लिए लापता बाधा जोड़ें या खुद को बाधा जोड़ें।


मेरा एक्सटेंशन चलाने के दौरान मुझे एक ही समस्या थी। मेरे मामले में, यह वास्तविक डिवाइस में एक्सटेंशन चलाकर हल किया गया था।


मेरे पास एक ही लॉग आउटपुट था। सफाई (Cmd + Shift + K) ने इसे मेरे लिए हल किया।


मेरे मामले में मेरे लक्ष्य plist में एक त्रुटि हुई: मैंने here दस्तावेज़ों को लाल किया और मैंने संपत्ति को NSExtensionPrincipalClass जोड़ा: जब मैंने इसे हटा दिया और उसका मूल्य (प्रिंसिपल, और अद्वितीय, वर्ग का नाम), तो यह ठीक काम किया


मैं भी उस समस्या में भागता हूं, और एकमात्र समाधान जिसे मैंने हल किया है, स्टोरीबोर्ड पर प्रत्येक ऑब्जेक्ट की वर्टिकल और क्षैतिज बाधा जोड़ रहा था।


मैंने अपना केस हल किया: दोनों कंटेनर और एक्सटेंशन ऐप के लिए ऐप समूह चालू करें। और UILabel, UIView, ... रूप में सभी छिपा UIKit नियंत्रण हटाएं UILabel, UIView, ...


यह सिम्युलेटर की समस्या है, कुछ वास्तविक उपकरणों को आजमाएं।


सबसे पहले, Assets.xcassets पर क्लिक करें

दूसरा, लक्ष्य सदस्यता पर क्लिक करें, विजेट को अपने संसाधनों तक पहुंचने की अनुमति देने के लिए अपने ऐप और विजेट दोनों को जांचें।

उसके बाद, अपना विजेट दोबारा चलाएं, अब इसे ठीक काम करना चाहिए।





ios8-today-widget