2015-09-18 4 views
10

हमारे पास कुछ इन-हाउस ऐप्स हैं और आईओएस 9 से पहले, ऐप्स संस्करण की तुलना के बाद "itms-services: //" जैसे लिंक खोलेंगे , नए संस्करण ऐप्स डाउनलोड और स्थापित किया जाएगा।आईओएस 9 लॉन्च सर्विसेज: त्रुटि: यूआरएल स्कीम के लिए कोई पंजीकृत हैंडलर नहीं है- सेवाएं

लेकिन आईओएस 9 पर परीक्षण करने के बाद, हमने पाया कि ऐप्स "itms-services: //" लिंक को नहीं खोल सकते हैं, "लॉन्च सर्विसेज: त्रुटि: यूआरएल योजना आईटीएम-सेवाओं के लिए कोई पंजीकृत हैंडलर नहीं है"

कोड हम एप्लिकेशन को अपडेट करने के लिए इस्तेमाल किया:

let downloadUrl = NSURL(string: url) 
UIApplication.sharedApplication().openURL(downloadUrl!) 

हम परीक्षण किया है डाल "itms-सेवाओं", "itms-सेवाएं: //" और "LSApplicationQueriesSchemes" plist फ़ाइल में में पूरा URL। लेकिन अभी भी काम नहीं करते हैं।

+0

Have इस समस्या के लिए वैकल्पिक हल विधि मिला है। किसी डोमेन पर उप-डोमेन नाम कॉन्फ़िगर करें और नए URL को itms-service पर रीडायरेक्ट करने के लिए सेट करें: // URL स्वचालित रूप से (आपका DNS सेवा प्रदाता हमेशा इसका समर्थन करता है), ऐप में, "itms-service" के बजाय नया URL खोलें यूआरएल, इसे ऐप फोरम से मिला, अभी तक परीक्षण नहीं किया गया है। – Daniel

उत्तर

0

iOS9 में (मेरे मामले में मेरे url योजना है: हैश :)

बदलें Info.plist: add the custom url schemes here

तो AppDelegate में ईवेंट हैंडलर रजिस्टर:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { 
    // do what you want to do 
    print(url); 

    // return true if url matches scheme 
    return true; 
} 
+0

आपके उत्तर के लिए धन्यवाद, लेकिन मैं ऐप के स्वामित्व वाली स्कीमा को परिभाषित नहीं कर रहा हूं, केवल एंटरप्राइज़ इन-हाउस वितरण स्कीमा का उपयोग करना चाहता हूं (उपयोगकर्ता ऐपस्टोर के बजाय इन-हाउस वितरण को स्थापित करने के लिए सफारी में यूआरएल खोल सकता है)। – Daniel

0

नहीं पता है कि यह आपका मामला है लेकिन ऐप्स डाउनलोड करने के लिए आपको एक https url की आवश्यकता है। हमारे पास हमारी वेबसाइट पर एक एसएसएल नहीं है, इसलिए हम क्या करते हैं .plist को ड्रॉपबॉक्स पर अपलोड करें और इसेम्स-सेवा लिंक में साझा लिंक का उपयोग करें। .plist अपने सर्वर पर रीडायरेक्ट और हम समस्याओं

+0

दरअसल, हमारे पास यह 9.0 से पहले आईओएस में काम करता है, लेकिन आईओएस 9 के अपडेट के बाद, यह काम नहीं कर सकता है। ऐसा लगता है कि नया आईओएस "आईटीएमएस-सेवाओं" के साथ यूआरएल शुरू करने के लिए एप्लिकेशन नहीं ढूंढ सकता है, यह काम करना चाहिए क्योंकि यूआरएल सीधे सफारी द्वारा खोला जा सकता है। लेकिन आवेदन से नहीं खोल सकते हैं। – Daniel

+0

@Daniel मेरा जवाब यहां देखें, शायद यह आपकी मदद कर सकता है, हमारे आईओएस 9 उपकरणों में यह ठीक काम करता है http://stackoverflow.com/a/32769917/1339326 – magorich

+1

आपके उत्तर के लिए धन्यवाद, लेकिन असल में हमारी समस्या "स्थापना नहीं है "लेकिन" अपग्रेड ", हम सफारी से आईओएस 9 पर अपना ऐप इंस्टॉल कर सकते हैं, लेकिन हमने ऐप को" आईटीएम-सर्विसेज: // "के रूप में खोलने के लिए खुद को अपग्रेड करने के लिए इस्तेमाल किया है, जो आईओएस 8 पर काम करता है लेकिन आईओएस 9 पर काम नहीं कर सकता – Daniel

0

आईओएस 9 में आप किसी भी URL योजनाओं को अपने एप्लिकेशन LSApplicationQueriesSchemes कुंजी के अंतर्गत Info.plist में क्वेरी करने के लिए चाहता है श्वेत सूची में डालने चाहिए (तार की एक सरणी) की जरूरत नहीं है:

enter image description here

Info.plist में शामिल योजनाओं के साथ सबकुछ पहले जैसा काम करता है। जब आप आईओएस 9 के खिलाफ लिंक करते हैं तो आप 50 अलग-अलग योजनाओं तक सीमित नहीं हैं जिन्हें आपको केवल Info.plist में जो चाहिए उसे घोषित करने की आवश्यकता है। ऐसा लगता है कि आप कितनी योजनाएं शामिल कर सकते हैं, इसके लिए कोई सीमा नहीं है, लेकिन अगर वे सोचते हैं कि आप तंत्र का दुरुपयोग कर रहे हैं तो मैं ऐप स्टोर समीक्षा टीम के प्रश्नों की अपेक्षा करूंगा।

Note that this mechanism only applies to canOpenURL and not openURL. You do not need to have a scheme listed in Info.plist to be able to open it with openURL.

में और जानकारी यहां: http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl.html

1

मैं तुम्हारे साथ एक ही समस्या के लिए आए हैं। और मैं विधि है कि एप्लिकेशन सफारी पहले के साथ एक एचटीएमएल यूआरएल को खोलने के साथ इस समस्या को हल,

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http:// xx.xx.xx.xx/xx.html"]]; 

एचटीएमएल यूआरएल URL पर रीडायरेक्ट --- itms-सेवाओं: // कार्रवाई = डाउनलोड-प्रकट & यूआरएल = https://xx.xx.xx.xx/xx/xx.plist पता। यद्यपि यह विधि मेरे ऐप को अपडेट कर सकती है, लेकिन अद्यतन प्रक्रिया को पहले सफारी खोलने की आवश्यकता है और फिर खुले ऐप स्टोर को अलर्ट करें, अगर आप ओपन बटन का चयन करते हैं तो यह आपके ऐप को इंस्टॉल करेगा या नहीं, आखिरकार आप इंस्टॉल बटन की पुष्टि करेंगे। ऐप स्वचालित रूप से स्थापित हो जाएगा। इस प्रकार

मेरी html सामग्री:

<html> 
<head> 
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" /> 
    <script type="text/javascript"> 
       function load() 
       { 
         window.location ="itms-services://?action=download-manifest&url=https://xxx/xx/xx.plist"; 
       } 
    </script> 
</head> 
<body onload = "load()"> 
+0

इसके अतिरिक्त, अद्यतन स्थापना प्रक्रिया यूआरएल टीएमएस-सेवाओं को खोलने जैसी ही है: //? Action = download-manifest & url = https: //xx.xx.xx.xx/xx/xx.plist सफारी में – dullgrass

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