2

I am Developing an iOS Application, and for API calling I am using NSURLSession, but my application was rejected from app store and Apple saying

" Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure that it runs as expected."

I am also using Reachability version 2.0 beta for network connection check, but I am not getting, why apple rejected my app while I am using NSURLSession and NSURLSession already support IPv6 network.

Here is my code

    internetCheck()

    if reachability!.isReachable() {
        dispatch_async(dispatch_get_main_queue()) {
            let token: NSString!

            let   urlPath: NSURL!

            if provider .isEqualToString("No"){
                urlPath  = NSURL(string: kAPI_SERVERBASEURL + (url as String))
            }
            else{
                urlPath  = NSURL(string: kAPI_SERVERBASEURLSEARCHPROVIDER + (url as String))
            }
            print("URL Called sucess: \(url)")
            var postJsonData = NSData()
            var jsonString   = NSString()

            do {
                postJsonData = try NSJSONSerialization.dataWithJSONObject(dictRequest, options:[])
                jsonString = NSString(data: postJsonData, encoding: NSUTF8StringEncoding)!
                NSLog("request - %@", jsonString);

                // do other stuff on success

            } catch {
                print("JSON serialization failed:  \(error)")
            }

            let request = NSMutableURLRequest(URL: urlPath);
            request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
            request.HTTPShouldHandleCookies = false
            request.timeoutInterval = 120 ;
            request.HTTPMethod = "POST";

            if NSUserDefaults.standardUserDefaults().valueForKey(kAccessToken) != nil{

                token = NSUserDefaults.standardUserDefaults().valueForKey(kAccessToken) as! NSString
                //token = "tk_1vNoEoZRxJwY"
                //request.setValue("\(token)", forHTTPHeaderField: "access_token")
                request.setValue("\(token)", forHTTPHeaderField: "ACCESS-TOKEN")
            }

            request.addValue("application/json", forHTTPHeaderField: "Content-Type")
            request.HTTPBody = postJsonData
            var task: NSURLSessionTask? = nil
            let session = NSURLSession.sharedSession()
            task = session.dataTaskWithRequest(request) { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in
                //  self.hideNetworkActivity()
                if((error) != nil) {
                    print(error!.localizedDescription)

                    let responseObj=ResponseObj()
                    if response==nil {

                    } else {
                        let responseStatus = response! as!  NSHTTPURLResponse
                        responseObj.responseCode = responseStatus.statusCode
                    }
                    responseObj.responseErrMessage = kAlertMessage_ServerNotWorking
                    self.delegate?.performSelector(self.callbackSelector!, withObject:responseObj)


                    return
                }else {
                    print("Succes:")
                    do {

                        let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
                        print("Value of JSON: \(jsonData)")

                        dispatch_async(dispatch_get_main_queue()) {
                            if jsonData.valueForKey("message") as! String == "Session expired."{
                                AppDelegate().appDelegate().hideHudViewSuccess()

                                let alert = UIAlertController(title: "", message:jsonData.valueForKey("message") as? String, preferredStyle: UIAlertControllerStyle.Alert)

                                alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action in
                                    AppDelegate().appDelegate().logout()
                                }))
                                self.delegate!.presentViewController(alert, animated: true, completion: nil)
                            }
                            return
                        }

                        var responseObj=ResponseObj()
                        //Changes if response code is 605 it is Token not found in that case view will navigate to Home screen
                        responseObj = try! responseObj.objectFormat(jsonData)
                        self.delegate?.performSelector(self.callbackSelector!, withObject:responseObj)
                        dispatch_async(dispatch_get_main_queue()) {
                            AppDelegate().appDelegate().hideHudViewSuccess()
                        }
                        return

                    } catch {
                        print("JSON Error: \(error)")
                        let responseObj=ResponseObj()
                        responseObj.responseErrMessage = kAlertMessage_ServerNotWorking
                        self.delegate?.performSelector(self.callbackSelector!, withObject:responseObj)
                        return
                    }
                }
            }
            task!.resume()
        }
    }else{
        dispatch_async(dispatch_get_main_queue()) {
            print("URL Called failer: \(url)")

            let responseObj=ResponseObj()
            responseObj.responseErrMessage = kAlertMessage_InternetNotAvailable
            self.delegate?.performSelector(self.callbackSelector!, withObject:responseObj)
            return
    }

Please Help me. Thanks in advance.

Janmenjaya
  • 4,149
  • 1
  • 23
  • 43
Chetan sharma
  • 378
  • 5
  • 21

0 Answers0