[ios] StoreKit का उपयोग करके अनियंत्रित NSURLErrorDomain त्रुटि कोड (-1001, -1003 और -1004)


2 Answers

मुझे इसी तरह की समस्याएं हैं, मेरे मामले में नेटवर्क कनेक्टिविटी से संबंधित प्रतीत होता है:

त्रुटि डोमेन = NSURLErrorDomain कोड = -1001 "अनुरोध का समय समाप्त हो गया।"

जांच करने के लिए चीजें:

  • क्या कोई मौका है कि आपका सर्वर कुछ समय सीमा के भीतर जवाब देने में सक्षम नहीं है? 60 सेकंड या 4 मिनट की तरह?
  • क्या कोई संभावना है कि आपका डिवाइस नेटवर्क स्विच कर रहा है (वाईफाई, 3 जी, वीपीएन)?
  • क्या कोई (क्लाइंट बनाम सर्वर) प्रमाणन के लिए इंतजार कर रहा है?

क्षमा करें, कोई विचार कैसे ठीक करें। समस्या को जानने का प्रयास करने के लिए बस इसे डिबग करना (-1021, -1001, -1009)

अपडेट करें: Google खोज यह ढूंढने के लिए बहुत दयालु थी:

  • -1001 TimedOut - यह आवंटित समय सीमा से अधिक समय लगा।
  • -1003 कैनोटफिंडहोस्ट - मेजबान नहीं मिला।
  • -1004 कैनॉट कनेक्ट कनेक्टहोस्ट - मेजबान हमें कनेक्शन स्थापित करने नहीं देगा।
Question

मैं स्टोरकिट से संबंधित कोड लिख रहा हूं, और जब मैं कतार में खरीदारी जोड़ने की कोशिश करता हूं तो मुझे कुछ परेशान त्रुटि कोड मिल रहे हैं।

अब तक, मैंने त्रुटि कोड -1003 और -1004 का अनुभव किया है और मुझे इंटरनेट पर उन कोडों के बारे में कुछ भी नहीं मिला है।

उत्पाद अनुरोध चलाने से वैध उत्पाद संख्याएं आती हैं, इसलिए मुझे नहीं पता कि [[SKPaymentQueue defaultQueue] addPayment:aPayment]; क्यों कॉल करें [[SKPaymentQueue defaultQueue] addPayment:aPayment]; इस अनियंत्रित समस्या के साथ असफल हो जाएगा।

एक ही कोड एक डिवाइस पर त्रुटियों के बिना भी काम करता है लेकिन दूसरे पर नहीं।

मेरे पास अभी तक के प्रश्न हैं, अनुत्तरित:

इन कोडों का क्या अर्थ है? मैं इस समस्या को कैसे कम कर सकता हूं? वे खरीद प्रयासों के लिए क्यों हो रहे हैं न कि उत्पाद अनुरोधों के लिए?

मैंने जो समस्या निवारण किया है, वह एक हस्ताक्षर प्रमाणपत्र और प्रावधान प्रोफाइल को पुनर्जीवित करना, वाईफाई नेटवर्क बदलना, सफाई करना और निर्माण करना और सभी संबंधित सॉफ़्टवेयर और घटकों को पुनर्स्थापित करना शामिल है, और इन चीजों में से कोई भी व्यक्तिगत रूप से या एक साथ समस्या को ठीक करने में मदद नहीं करता है।

संपादित करें:

ऐप्पल देव मंचों पर इसके बारे में एक चर्चा मिली, लेकिन ऐप्पल से किसी ने भी जवाब नहीं दिया: https://devforums.apple.com/thread/107121?tstart=75 (आईओएस डेवलपर खाता देखने के लिए आवश्यक है)

संपादित करें:

मुझे अकल्पनीय और अड़चन समस्याओं की इस सूची में जोड़ने के लिए आज त्रुटि कोड -1001 के साथ मारा गया था। ऐप्पल से अभी भी कोई जवाबदेही नहीं है, जिसे मैं पा सकता हूं।

संपादित करें:

मुझे संदेह है कि ये त्रुटि कोड यादृच्छिक रूप से जेनरेट किए जाते हैं और वास्तव में केवल संकेत देते हैं कि सैंडबॉक्स नीचे है। किसी और को इस समस्या का अनुभव है?




मुझे एक नया त्रुटि कोड मिला जो ऊपर दस्तावेज नहीं है: CFNetworkErrorCode-1022

Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection."



मैं अपनी परियोजना में निम्न विधि का उपयोग करता हूं

-(NSArray*)networkErrorCodes
{
    static NSArray *codesArray;
    if (![codesArray count]){
        @synchronized(self){
            const int codes[] = {
                //kCFURLErrorUnknown,     //-998
                //kCFURLErrorCancelled,   //-999
                //kCFURLErrorBadURL,      //-1000
                //kCFURLErrorTimedOut,    //-1001
                //kCFURLErrorUnsupportedURL, //-1002
                //kCFURLErrorCannotFindHost, //-1003
                kCFURLErrorCannotConnectToHost,     //-1004
                kCFURLErrorNetworkConnectionLost,   //-1005
                kCFURLErrorDNSLookupFailed,         //-1006
                //kCFURLErrorHTTPTooManyRedirects,    //-1007
                kCFURLErrorResourceUnavailable,     //-1008
                kCFURLErrorNotConnectedToInternet,  //-1009
                //kCFURLErrorRedirectToNonExistentLocation,   //-1010
                kCFURLErrorBadServerResponse,               //-1011
                //kCFURLErrorUserCancelledAuthentication,     //-1012
                //kCFURLErrorUserAuthenticationRequired,      //-1013
                //kCFURLErrorZeroByteResource,        //-1014
                //kCFURLErrorCannotDecodeRawData,     //-1015
                //kCFURLErrorCannotDecodeContentData, //-1016
                //kCFURLErrorCannotParseResponse,     //-1017
                kCFURLErrorInternationalRoamingOff, //-1018
                kCFURLErrorCallIsActive,                //-1019
                //kCFURLErrorDataNotAllowed,              //-1020
                //kCFURLErrorRequestBodyStreamExhausted,  //-1021
                kCFURLErrorFileDoesNotExist,            //-1100
                //kCFURLErrorFileIsDirectory,             //-1101
                kCFURLErrorNoPermissionsToReadFile,     //-1102
                //kCFURLErrorDataLengthExceedsMaximum,     //-1103
            };
            int size = sizeof(codes)/sizeof(int);
            NSMutableArray *array = [[NSMutableArray alloc] init];
            for (int i=0;i<size;++i){
                [array addObject:[NSNumber numberWithInt:codes[i]]];
            }
            codesArray = [array copy];
        }
    }
    return codesArray;
}

फिर मैं केवल त्रुटि कोड की जांच करता हूं और सूची में मौजूद होने पर चेतावनी दिखाता हूं

if ([[self networkErrorCodes] containsObject:[NSNumber
numberWithInt:[error code]]]){ 
// Fire Alert View Here
}

लेकिन जैसा कि आप देख सकते हैं मैंने उन कोडों पर टिप्पणी की जो मुझे लगता है कि कोई इंटरनेट की मेरी परिभाषा के अनुरूप नहीं है। जैसे -1012 का कोड (प्रमाणीकरण विफल।) आप अपनी पसंद के अनुसार सूची संपादित कर सकते हैं।

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

दस्तावेज़ीकरण के लिंक के लिए martinezdelariva के संबंध में।




Related