2013-06-07 15 views
12

My(Unity)アプリは、デバイスが完全なWi-Fi接続(Safariを含む他のすべてのアプリからもわかるように)の間、私のiPodにネットワーク接続がないという苦情を言います。このiOSアプリがネットワークにアクセスできないのはなぜですか?

これは単なるAPIのポイントではなく、Facebook、StoreKitなどのすべてがネットワークが利用できないと主張しています。

このメッセージは定期的に私のアプリからコンソールに送信されます。

(と思う) CoreTelephonyから来ることも

<Error>: Could not successfully update network info during initialization.

何が原因で起こりますか?私はデバッグとアドホックのビルドでそれを得る。私はデバイス上でアクティブな制限(設定から)を持っていません。

デバイスは、iOS 6で、ベースSDKは

+0

「ASIHTTP」などの他のネットワークライブラリを使用しましたか? – Raptor

+0

いいえ、ユニティプラグインのみです。 – Dave

+0

100%損失のインターネット接続がない設定 - > devTools - >ネットワークリンクコーディネーターをチェックしましたか? –

答えて

1

チェック誤って100%の損失インターネットをオンにしているかどうかを確認するために開発ツールのiOS 5です。それはデバッグメニューにあるはずです。

+0

私は同じ問題があり、私はこれを解決できませんでした。ネットワークリンクコンディショナーは、デバッグメニューで有効になっていません – husmen73

8

「初期化中にネットワーク情報を正常に更新できませんでした」 SIMカードなしのデバイス(3GなしのiPod touchまたはiPad)でCTTelephonyNetworkInfoを初期化するたびにログが表示されます。

非常に迷惑な場合は、一度初期化して、そのインスタンスに対してネットワークチェックを行うことができます。

+1

ああ!あなたは揺れ動きます。それがまさに私がシミュレータ上でこの不気味なメッセージを得ていた理由です。ありがとう! – Martin

+0

私は、シミュレータとCTTelephonyNetworkInfoの初期設定をappDelegate.mで設定しようとしましたが、動作しませんでした。コードを投稿できますか? @rockdaswift –

+0

@YaoLiあなただけ(必要な場合)一度これを実行する必要があります。 はnetworkInfo = CTTelephonyNetworkInfo()しましょう 次に、あなたがするSIMカードなしでシミュレータまたはデバイスであること、あなたの周りが行うたびにオブジェクトを渡しますその警告を得る。 – rockdaswift

0

私は、シミュレータで位置を設定し、appDelegate.mでCTTelephonyNetworkInfoの初期化を試みましたが、動作しませんでした。

+ (APIAgent *)manager { 
    static APIAgent *_manager = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     _manager = [[APIAgent alloc] initWithBaseURL:[NSURL URLWithString:API_URL]]; 
     _manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
     NSMutableIndexSet* codes = [NSMutableIndexSet indexSetWithIndexesInRange: NSMakeRange(200, 100)]; 
     [codes addIndex: 400]; 
     [codes addIndex: 401]; 
     [codes addIndex: 404]; 
     [codes addIndex: 409]; 
     [codes addIndex: 500]; 
     _manager.responseSerializer.acceptableStatusCodes = codes; 
    }); 

    return _manager; 
} 

- (id)initWithBaseURL:(NSURL *)url { 
    self = [super initWithBaseURL:url]; 
    if (!self) { 
     return nil; 
    } 

    [[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES]; 

    [self setHeaders]; 

    return self; 
} 

- (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters progress:(void (^)(NSProgress *uploadProgress))uploadProgress 
        complete:(void (^)(NSURLSessionDataTask *task, id responseObject, NSError *error))complete { 
    return [self GET:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask *task, id responseObject) { 
     if (complete) { 
      complete(task, responseObject, nil); 
     } 
    } failure:^(NSURLSessionDataTask *task, NSError *error) { 
     if (complete) { 
      complete(task, nil, error); 
     } 
    }]; 
} 

- (NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(id)parameters complete:(void (^)(NSURLSessionDataTask *task, id responseObject, NSError *error))complete { 
    return [self POST:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask *task, id responseObject) { 
     if (complete) { 
      complete(task, responseObject, nil); 
     } 
    } failure:^(NSURLSessionDataTask *task, NSError *error) { 
     if (complete) { 
      complete(task, nil, error); 
     } 
    }]; 
} 


- (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters progress:(void (^)(NSProgress *uploadProgress))uploadProgress 
         success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure { 
    self.securityPolicy.allowInvalidCertificates = YES; // self signed certificate 
    self.securityPolicy.validatesDomainName = NO; 
    return [super GET:URLString parameters:parameters progress:nil success:success failure:failure]; 
} 

- (NSURLSessionDataTask *)POST:(NSString *)URLString 
        parameters:(id)parameters 
         progress:(void (^)(NSProgress *uploadProgress))uploadProgress 
         success:(void (^)(NSURLSessionDataTask *task, id responseObject))success 
         failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure { 
    NSMutableDictionary *params = [parameters mutableCopy]; 

    self.securityPolicy.allowInvalidCertificates = YES; // self signed certificate 
    self.securityPolicy.validatesDomainName = NO; 
    return [super POST:URLString parameters:params progress:nil success:success failure:failure]; 
} 

- (NSURLSessionDataTask *)POST:(NSString *)URLString 
        parameters:(id)parameters constructingBodyWithBlock:(void (^)(id<AFMultipartFormData>))block 
         progress:(void (^)(NSProgress *uploadProgress))uploadProgress 
         success:(void (^)(NSURLSessionDataTask *, id))success failure:(void (^)(NSURLSessionDataTask *, NSError *))failure { 
    NSMutableDictionary *params = [parameters mutableCopy]; 

    if (parameters == nil) { 
     params = [[NSMutableDictionary alloc] init]; 
    } else { 
     if (parameters[@"postId"] != nil) { 
      params[@"postId"] = parameters[@"postId"]; 
     } 
    } 

    self.securityPolicy.allowInvalidCertificates = YES; // http://stackoverflow.com/questions/27808249/problems-with-ssl-pinning-and-afnetworking-2-5-0-nsurlerrordomain-error-1012 
    self.securityPolicy.validatesDomainName = NO; 
    return [super POST:URLString parameters:params constructingBodyWithBlock:block progress:nil success:success failure:failure]; 

} 

- (void)setHeaders { 
    NSString *time = [NSString stringWithFormat:@"%f", [[[NSDate alloc] init] timeIntervalSince1970]]; 
    AFHTTPRequestSerializer * serializer = self.requestSerializer; 
    [serializer setValue:time forHTTPHeaderField:@"X-API-TIME"]; 
    [serializer setValue:[UIDevice currentDevice].identifierForVendor.UUIDString forHTTPHeaderField:@"X-UUID"]; 

    [serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

    NSString *preferredLang = [NSLocale preferredLanguages].firstObject; 

    [serializer setValue:preferredLang forHTTPHeaderField:@"X-USER-LANGUAGE"]; 
} 
+0

上記のコードは、ネットワーク要求を行うユーティリティクラスとして使用できます。 –

関連する問題