2015-12-08 10 views
13

मैं अपने स्थानीय मैक ऐप के लिए सफारी एक्सटेंशन विकसित कर रहा हूं, मैं उनके बीच संवाद करने के लिए SafariExtension Companion का उपयोग करना चाहता हूं।सफारी एक्सटेंशन कंपैनियन हमेशा शून्य है

हालांकि, मेरे ग्लोबल.html एक्सटेंशन में, जब भी मैं safari.extension.companion प्राप्त करने का प्रयास कर रहा हूं, यह हमेशा शून्य है। क्या मैं एक्सटेंशन गलत स्थापित करता हूं?

इसके अलावा, मार्गदर्शिका के अनुसार, मैं स्थानीय ऐप से संदेश सुनने के लिए safari.extension.addEventListener का उपयोग कर सकता हूं, हालांकि, जब मैं एक्सटेंशन डीबग करता हूं, तो यह मुझे safari.extension.addEventListener को अपरिभाषित करता है, वह क्यों है?

उत्तर: safari.application.addEventListener सही है, ऐप्पल एक गलत दस्तावेज़ लिखता है।

मैं एक्सटेंशन बिल्डर में सटीक कंपैनियन बंडल पहचानकर्ता को पहचानकर्ता के रूप में सेट करता हूं जिसे मैंने गाइड के अनुसार सफारी साथी के लिए एक्सकोड में सेट किया है। क्या मुझे याद आती है? कृपया सहायता कीजिए!!!

उत्तर

5

एक सफारी एक्सटेंशन साथी एक मैकोज़ एक्स ऐप एक्सटेंशन का एक प्रकार है। उन्हें आवेदन बंडलों के हिस्से के रूप में भेज दिया जाता है। जब ऐप इंस्टॉल किया जाता है (बंडल को एप्लिकेशन में कॉपी किया जाता है), सफारी एक्सटेंशन को उठाता है।

सबसे पहले, आपको "कोको एप्लिकेशन" ("कमांड लाइन टूल" प्रकार के लक्ष्य के साथ एक एक्सकोड प्रोजेक्ट की आवश्यकता है)। फिर आपको "सफारी एक्सटेंशन कंपैनियन" प्रकार का लक्ष्य बनाना होगा, और आपके पास इसे बनाते समय प्राथमिक ऐप निर्दिष्ट करने का मौका होगा।

जब आप ऐप बनाते हैं और संग्रह करते हैं, और संग्रह निर्यात करते हैं, तो आपको ऐप बंडल में एक्सटेंशन जोड़ने का विकल्प मिलता है। फिर ऐप बंडल इंस्टॉल करें।

सुनिश्चित करें कि एक्सटेंशन की बंडल आईडी सफारी एक्सटेंशन बिल्डर में सेटिंग से मेल खाती है। साथ ही, सुनिश्चित करें कि ऐप और सफारी एक्सटेंशन दोनों हस्ताक्षरित हैं, और चाबियाँ डेवलपर आईडी से मेल खाते हैं। मैकोज़ एक्स पर प्रमाणपत्र प्रकार के लिए, "डेवलपर आईडी" चुनें - पहली बार अनुरोध करते समय, फिर निर्माण संग्रह से बंडल का निर्यात करते समय।

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

+0

उत्तर देने के लिए धन्यवाद। मैंने सब कुछ किया, लेकिन यह अभी भी काम नहीं करता है। मैंने क्या किया: 1. मैं विस्तार में सफारी प्रमाणपत्र आयात करता हूं। 2. उसी उपसर्ग के साथ मैक डेवलपमेंट सर्टिफिकेट के साथ ऐप और साथी पर हस्ताक्षर करें 3. इसे संग्रहीत करें और इसे विकास-हस्ताक्षरित एप्लिकेशन के रूप में निर्यात करें और फिर बंडल को एप्लिकेशन फ़ोल्डर – Terence

+0

पर कॉपी करें मूल भाग पर भी हस्ताक्षर किए जाने चाहिए। मुझे यकीन नहीं है कि आपको मुख्य ऐप, एक्सटेंशन या दोनों पर हस्ताक्षर करने की आवश्यकता है, इसलिए मैंने निर्यात करते समय ** और ** निर्माण करते समय दोनों पर हस्ताक्षर किए हैं। सफारी और मैकोज़ एक्स के लिए प्रमाण पत्र शारीरिक रूप से अलग हैं, लेकिन उनके पास एक ही डेवलपर आईडी है; मेरे अनुभव में, यह पर्याप्त है। –

+0

क्या इसे मैक वितरण प्रमाणपत्र से हस्ताक्षर करना है? मेरे पास केवल विकास प्रमाण पत्र है। – Terence

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