आपके कोड में कुछ भी गलत नहीं है। यह Apple के लिए एक लॉगिंग संदेश है, और आपको इसके बारे में एक राडार दर्ज करना चाहिए।
दो संकेत हैं जो बताते हैं कि यह संभवतः Apple का कोड है:
विधि के नाम _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
को रेखांकित करने वाला अंडरस्कोर यह दर्शाता है कि यह विधि उस वर्ग के लिए निजी / आंतरिक है जिसे यह घोषित किया गया है ( यह टिप्पणी देखें ।)
यह अनुमान लगाना उचित है कि दो अक्षर उपसर्ग FBSSceneSnapshotAction
FrontBoard के लिए शॉर्टहैंड है, जो कि " iOS 9 विश -लिस्ट: गेस्ट मोड" में रेने रिची के अनुसार, लॉन्चिंग ऐप्स से संबंधित सॉफ्टवेयर के पूरे परिवार का हिस्सा है:
IOS 8 के साथ, Apple ने अपने सिस्टम मैनेजर, स्प्रिंगबोर्ड को कई छोटे, अधिक केंद्रित घटकों में फिर से बनाया। बैकबॉर्ड के अलावा, जो पहले से ही पृष्ठभूमि कार्यों को संभालने के लिए बंद था, उन्होंने अग्रभूमि कार्यों के लिए फ्रंटबोर्ड को जोड़ा। उन्होंने लॉक स्क्रीन को सुरक्षित, एन्क्रिप्टेड शर्तों के तहत संभालने के लिए प्रीबर्ड को भी जोड़ा। [...]
मुझे पता नहीं है कि BS
उपसर्ग किस BSSettings
लिए है, लेकिन इस लॉग संदेश के विश्लेषण से संकेत मिलता है कि यह आपके द्वारा किया गया कुछ भी नहीं है, और आपको लॉगिंग संदेश को पुन: उत्पन्न करने के लिए चरणों के साथ एक राडार दर्ज करना चाहिए।
यदि आप स्टैक ट्रेस को पकड़ना चाहते हैं, तो आप यहां से जुड़ी श्रेणी को लागू कर सकते हैं । कुछ का तर्क होगा कि निजी एपीआई को ओवरराइड करना एक बुरा विचार है, लेकिन इस मामले में स्टैक ट्रेस को हथियाने के लिए एक अस्थायी इंजेक्शन बहुत हानिकारक नहीं हो सकता है।
संपादित करें:
लेकिन, हम अभी भी जानना चाहते हैं कि यह कार्रवाई क्या है। इसलिए मैंने एक ब्रेकपॉइंट लगाया -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
और रजिस्टर मूल्यों को छापना शुरू किया और एक वर्ग पाया, FBSceneImpl
जिसमें मेरे आवेदन के बारे में पूरी जानकारी थी:
हम यह पता लगाने में सक्षम हैं कि किस निजी विधि को अगले कहा जाता है (कार्यक्रम काउंटर में संग्रहीत, रजिस्टर 15.)
मैंने FBSceneSnapshotAction
लॉग में अन-हैंडल किए गए संदर्भित को खोजने की कोशिश की , लेकिन कोई पासा नहीं। फिर, मैंने UIApplication, और Overrode को उपवर्गित किया _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
। अब मैं सीधे कार्रवाई करने में सक्षम था, लेकिन फिर भी, हम नहीं जानते कि यह क्या है।
फिर, मैंने FBSceneSnapshotAction को फिर से देखा। पता चलता है कि यह एक सुपरक्लास कहा जाता है BSAction
।
तब मैंने RuntimeBrowser के समान एक उपकरण लिखा और BSAction के सभी उपवर्गों को देखा। यह पता चला है कि उनमें से एक सूची है:
हमारे पास दो विधि नाम (लॉग में से एक और डिवाइस पर प्रोग्राम काउंटर से) इंगित करते हैं कि इन कार्यों का उपयोग सिस्टम के चारों ओर गुजरने वाली क्रियाओं के लिए हुड के तहत किया जाता है।
कुछ कार्यों को संभवत: ऐप के प्रतिनिधि के कॉलबैक में भेज दिया जाता है, जबकि अन्य को आंतरिक रूप से नियंत्रित किया जाता है।
यहाँ क्या हो रहा है कि एक ऐसी कार्रवाई है जिसे सही तरीके से नहीं किया गया है और सिस्टम इसे नोट कर रहा है। हम इसे स्पष्ट रूप से देखने वाले नहीं थे।