2015-06-27 5 views
10

के लिए काम करता है मेरे पास कई आईओएस ऐप में डिप्लिंक करने और यूआईएममेज व्यू में एक छवि को प्री-लोड करने के लिए कई शाखा लिंक हैं। ऐप इंस्टॉल होने पर वे ठीक तरह से काम करते हैं, भले ही यह पृष्ठभूमि में है या इसे समाप्त कर दिया गया हो। हालांकि, अगर ऐप पहले से स्थापित नहीं है तो वे काम नहीं करते हैं। वे ऐप स्टोर से ठीक से लिंक करते हैं, लेकिन एक बार ऐप इंस्टॉल हो जाने के बाद पैरामीटर सही तरीके से बहते प्रतीत नहीं होते हैं।आईओएस के लिए Branch.io लिंक डेटा पोस्ट-इंस्टॉलेशन पास नहीं कर रहा है लेकिन ठंडा लॉन्च

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

यहां एक गहरे लिंक का एक उदाहरण है जो एक शर्ट डिजाइन में ग्राफिक लोड करना चाहिए:

https://bnc.lt/l/5wGbOak_QW

किसी शाखा डेटा नहीं भेज सही ढंग से स्थापित करने के बाद के साथ किसी भी ज्ञात समस्याओं के बारे में पता है?

संपादित करें: यहां मेरे ऐप डिलीगेट शाखा कोड में जो मिला है वह यहां है। मैं साबित नहीं कर सकता कि यूआरएल सेट नहीं हो रहा है, लेकिन HomeViewController लिंक किए गए चित्र को डाउनलोड नहीं कर रहा है जैसे कि यह गैर-पोस्ट-इंस्टॉल लॉन्च के लिए करता है। और जैसा कि मैंने पहले उल्लेख किया था, मुझे नहीं पता कि इस स्थिति को कैसे अनुकरण करना है क्योंकि एक्सकोड सिम्युलेटर हमेशा पहले स्थापित करता है इसलिए मेरे पास लिंक प्री-इंस्टॉल पर क्लिक करने का अनुकरण करने का कोई अवसर नहीं है।

let branch: Branch = Branch.getInstance() 
    branch.initSessionWithLaunchOptions(launchOptions, andRegisterDeepLinkHandler: { params, error in 
    if (error == nil) { 
    if let url = params["product_picture_url"] as? String { 
     let url = NSURL(string: url)! 
     HomeViewController.injectedImageUrl = url 
    } 
    }  
}) 
+0

पोस्ट कोड plz ... – kittykittybangbang

+0

मैं अपने ऐपडिलेगेट में मानक शाखा कोड का उपयोग कर रहा हूं, लेकिन मैं यह देखने के लिए परीक्षण नहीं कर सकता कि पैराम पारित हो रहा है क्योंकि मुझे शाखा को अनुकरण करने के किसी भी तरीके से नहीं पता ऐप इंस्टॉल होने से पहले लिंक क्लिक करें ... इसलिए मुझे नहीं पता कि पैराम शाखा कोड के माध्यम से/नहीं जा रहे हैं या नहीं, मुझे पता है कि ऐप व्यवहार नहीं कर रहा है जैसे कि वे आबादी वाले हैं। मैं उपरोक्त पोस्ट को अपडेट करने के लिए उपरोक्त पोस्ट अपडेट करूंगा जिसमें मुझे ऐप में मिला है – othomas

उत्तर

11

क्या आप पुष्टि कर सकते हैं कि आप ऐप इंस्टॉल करने से पहले लिंक पर क्लिक कर रहे हैं? यहाँ परीक्षण प्रवाह एक ताजा के माध्यम से मानकों को पारित होने के लिए पैदा करने के लिए स्थापित है:

  1. एप्लिकेशन अनइंस्टॉल करें
  2. सफारी में लिंक पेस्ट करें, तो यह क्लिक करें। यदि आप सिम्युलेटर पर हैं, तो आपको एक त्रुटि संदेश दिखाई देगा क्योंकि यह ऐप स्टोर खोलने की कोशिश कर रहा है जो इंस्टॉल नहीं है।
  3. Xcode
  4. से परीक्षण एप्लिकेशन चलाएं
  5. पैरामीटर निश्चित रूप से में पारित किया जाना चाहिए init

यदि वह काम नहीं करता है, यहाँ कुछ अन्य समस्या निवारण सुझाव हैं:

  1. आप लॉगिंग को जोड़ सकते हैं यह सुनिश्चित करने के लिए कि आपने सही प्रतिनिधि विधि में initSession जोड़ा है जो पहले खुले पर निष्पादित करता है। यह इस प्रतिनिधि विधि में होना चाहिए:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    
  2. एक अन्य आम परिदृश्य है कि लिंक टेस्ट कुंजी का उपयोग कर बनाया जा सकता है, और आप अपने plist लाइव कुंजी मिल गया है। शाखा टेस्ट -> लाइव या वीज़ा बनाम से गहरे लिंकिंग की अनुमति नहीं देती है। यदि आप अनिश्चित हैं कि लिंक किस कुंजी से जुड़ा हुआ है, तो आप विवरण देखने के लिए टेस्ट या डैशबोर्ड पर लाइव चुनने के बाद लिंक (जैसे https://bnc.lt/l/5wGbOak_QW?debug=true) लिंक पर डीबग = सही जोड़ सकते हैं। यदि आपने गलत कुंजी चुना है, तो यह 'लिंक नहीं मिला' कहेंगे। अन्यथा, यह लिंक का विवरण दिखाएगा।

+1

शानदार! मैंने ऐप इंस्टॉल किए बिना लिंक पर क्लिक करने के बारे में सोचा नहीं था, फिर एक पोस्ट-क्लिक ताजा इंस्टॉल अनुकरण करने के लिए एक्सकोड से लोड करना। मैं इसके साथ परीक्षण करने में सक्षम था और महसूस किया कि शाखा सेवा ने इसके पैरामीटर के साथ जवाब देने से पहले मेरा डिफ़ॉल्ट दृश्य कंट्रोलर स्टोरीबोर्ड से लॉन्च किया जा रहा था। जिस बिंदु पर शाखा कोड चल रहा था, लेकिन मेरा विचार परिवर्तनों को दर्शाने के लिए अद्यतन नहीं कर रहा था। सहायता के लिए धन्यवाद! – othomas

+0

मैं ट्रैक को ट्रैक करने के लिए संघर्ष कर रहा था और इस पोस्ट को मिला। मुझे एहसास हुआ कि आपको हर इंस्टॉलेशन के लिए एक ताजा डिवाइस चाहिए। चूंकि शाखा अनइंस्टॉल को ट्रैक नहीं कर सकती है, ऐसा लगता है कि उपयोगकर्ता के पास पहले के बाद प्रत्येक इंस्टॉलेशन पर ऐप था, इसलिए यह इसे "ओपन" के रूप में ट्रैक करता है। मेरे लिए कुंजी सिम्युलेटर -> सामग्री और सेटिंग्स रीसेट करें पर क्लिक करना था। यह प्रभावी रूप से एक ताजा डिवाइस उत्पन्न करता है। फिर उस लिंक पर क्लिक करें जिसे आप सिम्युलेटर में परीक्षण करने का प्रयास कर रहे हैं। फिर एक्सकोड से अपना ऐप चलाएं। यह 100% स्थापित करता है। – Sean

+0

बढ़िया! उसे हल कर लिया। परीक्षण < - > लाइव समस्या थी, लेकिन 'debug = true' जानना बहुत अच्छा है! खुशी है कि मैंने गलती की और यहां सोने का यह टुकड़ा पाया – hashier

0

मैं AppDelegate में कॉलबैक में से एक के हस्ताक्षर बदलकर पैर में खुद को गोली मार दी।

मैं था

func application(_: UIApplication, continue userActivity: NSUserActivity, _: @escaping ([Any]?) -> Void) -> Bool 

जबकि सही हस्ताक्षर

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool 

था नतीजतन, मैं हमेशा ["+clicked_branch_link": 0, "+is_first_session": 0] डीप लिंक हैंडलर में मिलेगा, जबकि एप्लिकेशन डेटा को स्थापित करने से पहले प्रारंभ पर के बाद अपेक्षित के रूप में उपलब्ध होगा। और कॉलबैक ¯ \ _ (ツ) _/¯ के बारे में शाखा एसडीके से एक भी झपकी नहीं, दिलचस्प बात यह है कि लॉग में Google लॉगिन एसडीके से एक चेतावनी थी।

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