স্টোরকিট ব্যবহার করে Undocumented NSURLErrorDomain ত্রুটি কোডগুলি (-1001, -1003 এবং -1004)


106

আমি স্টোরকিট-সম্পর্কিত কোড লিখছি, এবং যখন আমি কাতারে ক্রয় যুক্ত করার চেষ্টা করছিলাম তখন কিছু সমস্যা বরং ত্রুটিযুক্ত কোডগুলি পেয়ে যাচ্ছি।

এখন পর্যন্ত, আমি ত্রুটি কোডগুলি -1003 এবং -1004 অভিজ্ঞতা পেয়েছি এবং আমি ইন্টারনেটে এই কোডগুলি সম্পর্কে কিছুই খুঁজে পাচ্ছি না।

একটি পণ্য অনুরোধ চালানো বৈধ পণ্য নম্বরগুলি ফেরত দেয়, তাই আমি জানি না কেন কলগুলি [[SKPaymentQueue defaultQueue] addPayment:aPayment];এই অননুমোদিত সমস্যার সাথে ব্যর্থ হবে।

একই কোডটি অন্য একটি ডিভাইসে ত্রুটিগুলি ছাড়াও কাজ করে another

আমার কাছে যে প্রশ্নগুলি রয়েছে, সেগুলি এখনও উত্তরহীন:

এই কোডগুলির অর্থ কী? আমি কীভাবে এই সমস্যাটি প্রশমিত করতে পারি? কেন তারা কেনার চেষ্টা এবং পণ্য অনুরোধের জন্য না ঘটছে?

আমি যে সমস্যার সমাধান করেছি তার মধ্যে রয়েছে একটি স্বাক্ষরকারী শংসাপত্র পুনরায় জেনারেট করা এবং প্রোফাইল সরবরাহ করা, ওয়াইফাই নেটওয়ার্কগুলি পরিবর্তন করা, সমস্ত সম্পর্কিত সফ্টওয়্যার এবং উপাদানগুলি পরিষ্কার এবং বিল্ডিং এবং পুনরায় ইনস্টল করা এবং এই বিষয়গুলির কোনওটিই স্বতন্ত্র বা একসাথে সমস্যার সমাধান করতে সহায়তা করে নি।

সম্পাদনা করুন:

অ্যাপল দেব ফোরামে এ সম্পর্কে একটি আলোচনা পেয়েছে, তবে অ্যাপল থেকে কেউ সাড়া দেয়নি: https://devforums.apple.com/thread/107121?tstart=75 (আইওএস বিকাশকারী অ্যাকাউন্ট দেখতে প্রয়োজন)

সম্পাদনা করুন:

অনভিজ্ঞ এবং অন্তর্বর্তী সমস্যার এই তালিকায় যুক্ত করতে আজ আমি ত্রুটি কোড -1001 দিয়ে আঘাত পেয়েছি। অ্যাপলের কাছ থেকে এখনও কোনও জবাবদিহিতা নেই, যা আমি খুঁজে পেতে পারি।

সম্পাদনা করুন:

আমার একটি সন্দেহ আছে যে এই ত্রুটি কোডগুলি এলোমেলোভাবে উত্পন্ন হয়েছে এবং সত্যিই কেবল ইঙ্গিত করে যে স্যান্ডবক্সটি বন্ধ রয়েছে। অন্য কেউ এই সমস্যাটি অনুভব করেন?

উত্তর:


341

সমস্ত ত্রুটি কোড ডকুমেন্টেশনের "সিএফ নেট নেটওয়ার্ক এরর কোডস রেফারেন্স" এ রয়েছে ( লিঙ্ক) )

CFURL এবং CFURL সংযোগ ত্রুটিগুলির জন্য একটি ছোট নিষ্কাশন:

  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,

2
এগুলি সিএফ নেট নেটওয়ার্ক ফ্রেমওয়ার্ক> সিএফনেটওয়ার্ক এরিগ্রেস হেডারের মধ্যে রয়েছে।
টম পেস

1
ত্রুটিগুলি হওয়ার সময় এই দস্তাবেজের আরও তথ্য রয়েছে: এনএসআরএলআরআর পরিবার
নয়টি পাথর

এই ধ্রুবকগুলি সুইফটে সংকলন করে না, তবে উদাহরণস্বরূপ NSURLErrorUnknown। কোন সংকেত সনাক্ত করুন?
নিকোলাস মিয়ারি

ওহ, কিছু মনে করবেন না ... এখানে সুইফ্ট সংস্করণটি খুঁজে পেয়েছে: developer.apple.com/library/mac/docamentation/Networking/…
নিকোলাস মিয়ারি

25

আমার অনুরূপ সমস্যা আছে, আমার ক্ষেত্রে নেটওয়ার্ক সংযোগের সাথে সম্পর্কিত বলে মনে হচ্ছে:

ত্রুটি ডোমেন = NSURLErrorDomain কোড = -1001 "অনুরোধের সময়সীমা শেষ হয়েছে।"

পরীক্ষা করার বিষয়গুলি:

  • আপনার সার্ভার কিছু সময়সীমার মধ্যে সাড়া দিতে সক্ষম না হওয়ার কোনও সুযোগ আছে কি? 60 সেকেন্ড বা 4 মিনিটের মতো?
  • আপনার ডিভাইস নেটওয়ার্কগুলি (ওয়াইফাই, 3 জি, ভিপিএন) স্যুইচ করছে এমন কোনও সম্ভাবনা আছে?
  • কেউ (ক্লায়েন্ট বনাম সার্ভার) প্রমাণীকরণের জন্য অপেক্ষা করতে পারে?

দুঃখিত, কীভাবে ঠিক করবেন কোনও ধারণা নেই। সমস্যাটি কী তা সন্ধান করার জন্য কেবল এটি ডিবাগিং করা হচ্ছে (-1021, -1001, -1009)

হালনাগাদ: গুগল অনুসন্ধান এটি সন্ধান করতে খুব দয়াবান ছিল:

  • -1001 টাইমডআউট - যে সময়সীমাটি বরাদ্দ করা হয়েছিল তার চেয়ে বেশি সময় লেগেছে।
  • -1003 CannotFindHost - হোস্টটি খুঁজে পাওয়া যায়নি।
  • -1004 CannotConnectToHost - হোস্ট আমাদের সংযোগ স্থাপন করতে দেয় না।

1
"এমন কি কোনও সুযোগ রয়েছে যে আপনার সার্ভার কিছু সময়সীমার মধ্যে সাড়া দিতে পারছে না?" আপনি জানেন, এটি হত্যাকারী, এটি অ্যাপলের সার্ভার যা আমি এই কোডটির সাথে যোগাযোগের চেষ্টা করছি, সুতরাং এটি আমার সার্ভার নয় যা হিচাপি করছে।
হাইপারবোল

আরে জম, আইফোনে এটি আমাদের পক্ষে ভাল কাজ করছে তবে আইপ্যাডে আমরা মাঝে মধ্যে ক্র্যাশ হয়ে যাচ্ছি, এই বার্তাটি যেমন, "-1001 টাইমডআউট" বার্তাটি দেখায়। তবে আমার প্রশ্ন হ'ল, যদি টাইমডআউট তবে এটি আইফোন এবং আইপ্যাড উভয় ক্ষেত্রেই আসা উচিত। অগ্রিম @ জুম-কে ধন্যবাদ
বাবুল

21

NSURLError.h সংজ্ঞাটি দেখুন

NSURLErrorUnknown =             -1,
NSURLErrorCancelled =           -999,
NSURLErrorBadURL =              -1000,
NSURLErrorTimedOut =            -1001,
NSURLErrorUnsupportedURL =          -1002,
NSURLErrorCannotFindHost =          -1003,
NSURLErrorCannotConnectToHost =         -1004,
NSURLErrorNetworkConnectionLost =       -1005,
NSURLErrorDNSLookupFailed =         -1006,
NSURLErrorHTTPTooManyRedirects =        -1007,
NSURLErrorResourceUnavailable =         -1008,
NSURLErrorNotConnectedToInternet =      -1009,
NSURLErrorRedirectToNonExistentLocation =   -1010,
NSURLErrorBadServerResponse =       -1011,
NSURLErrorUserCancelledAuthentication =     -1012,
NSURLErrorUserAuthenticationRequired =  -1013,
NSURLErrorZeroByteResource =        -1014,
NSURLErrorCannotDecodeRawData =             -1015,
NSURLErrorCannotDecodeContentData =         -1016,
NSURLErrorCannotParseResponse =             -1017,
NSURLErrorAppTransportSecurityRequiresSecureConnection NS_ENUM_AVAILABLE(10_11, 9_0) = -1022,
NSURLErrorFileDoesNotExist =        -1100,
NSURLErrorFileIsDirectory =         -1101,
NSURLErrorNoPermissionsToReadFile =     -1102,
NSURLErrorDataLengthExceedsMaximum NS_ENUM_AVAILABLE(10_5, 2_0) =   -1103,

// SSL errors
NSURLErrorSecureConnectionFailed =      -1200,
NSURLErrorServerCertificateHasBadDate =     -1201,
NSURLErrorServerCertificateUntrusted =  -1202,
NSURLErrorServerCertificateHasUnknownRoot = -1203,
NSURLErrorServerCertificateNotYetValid =    -1204,
NSURLErrorClientCertificateRejected =   -1205,
NSURLErrorClientCertificateRequired =   -1206,
NSURLErrorCannotLoadFromNetwork =       -2000,

// Download and file I/O errors
NSURLErrorCannotCreateFile =        -3000,
NSURLErrorCannotOpenFile =          -3001,
NSURLErrorCannotCloseFile =         -3002,
NSURLErrorCannotWriteToFile =       -3003,
NSURLErrorCannotRemoveFile =        -3004,
NSURLErrorCannotMoveFile =          -3005,
NSURLErrorDownloadDecodingFailedMidStream = -3006,
NSURLErrorDownloadDecodingFailedToComplete =-3007,

NSURLErrorInternationalRoamingOff NS_ENUM_AVAILABLE(10_7, 3_0) =         -1018,
NSURLErrorCallIsActive NS_ENUM_AVAILABLE(10_7, 3_0) =                    -1019,
NSURLErrorDataNotAllowed NS_ENUM_AVAILABLE(10_7, 3_0) =                  -1020,
NSURLErrorRequestBodyStreamExhausted NS_ENUM_AVAILABLE(10_7, 3_0) =      -1021,

NSURLErrorBackgroundSessionRequiresSharedContainer NS_ENUM_AVAILABLE(10_10, 8_0) = -995,
NSURLErrorBackgroundSessionInUseByAnotherProcess NS_ENUM_AVAILABLE(10_10, 8_0) = -996,
NSURLErrorBackgroundSessionWasDisconnected NS_ENUM_AVAILABLE(10_10, 8_0)= -997,

3

আমি আমার প্রকল্পে নিম্নলিখিত পদ্ধতিটি ব্যবহার করি

-(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 এর কোড (প্রমাণীকরণ ব্যর্থ)) আপনি নিজের পছন্দ অনুযায়ী তালিকাটি সম্পাদনা করতে পারেন।

আমার প্রকল্পে আমি এটি ব্যবহারকারীর কাছ থেকে প্রবেশকারীর নাম / পাসওয়ার্ডে ব্যবহার করি। এবং আমার দৃষ্টিতে (শারীরিক) নেটওয়ার্ক সংযোগ ত্রুটিগুলি কেবল আপনার নেটওয়ার্ক ভিত্তিক অ্যাপ্লিকেশনটিতে সতর্কতা প্রদর্শনের কারণ হতে পারে। অন্য যে কোনও ক্ষেত্রে (উদাঃ ভুল ব্যবহারকারীর নাম / পাসওয়ার্ডের জুটি) আমি কিছু কাস্টম ব্যবহারকারী বান্ধব অ্যানিমেশন করতে পছন্দ করি, বা ব্যবহারকারীর কোনও মনোযোগ না দিয়ে ব্যর্থ চেষ্টাটি পুনরায় পুনরাবৃত্তি করি। বিশেষত যদি ব্যবহারকারী স্পষ্টভাবে একটি নেটওয়ার্ক কল শুরু না করে থাকে।

ডকুমেন্টেশনের লিঙ্কের জন্য মার্টিনেজডেলারিভা সম্পর্কিত।


এটা ক্লাস পদ্ধতি হতে পারে!
ইলনার_ল

2

আমি একটি নতুন ত্রুটি কোড পেয়েছি যা উপরের নথিভুক্ত নয়: সিএফনেটওয়ার্কআরারকোড -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."

forums.developer.apple.com/thread/5835 <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
লক্ষ্মী

1

আমি এই পৃষ্ঠায় ডকুমেন্টেশনে খুঁজে পেয়েছি যা NSURLErrorDomain এর অধীনে সমস্ত ত্রুটি কোডগুলির জন্য একটি উদ্দেশ্য-সি এনাম রয়েছে।

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/index.html#//apple_ref/doc/constant_group/URL_Loading_System_Error_Codes

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.