2016-08-03 3 views
0

내가는 아이폰 OS 9 + Testflight 셀룰러 데이터가

Session.dataTaskWithRequest(request, completionHandler: (func)) 

을 통해 서버에 호출이 응용 프로그램 내부 스위프트 2. 작성된 모바일 iOS 앱이 작동하지 나는 셀룰러 데이터와 세 아이 패드가 있습니다. 1 내부, 내가 액세스 할 수 있고 디버거에 연결할 수 있습니다. 2 외부에 나는 접근 할 수없고 무슨 일이 일어나고 있는지에 대한 아이디어를 얻기 위해 질문을해야만한다.

내부 iPad는 무선 및 셀룰러 모두에서 빌드 X와 작동합니다. 이는 요청이 통과되어 서버에 연결된다는 의미입니다.

외부 iPads는 Wi-Fi를 통해 작동하지만 휴대 전화에서는 작동하지 않습니다. 우리는 모바일 데이터를 확보

  • 을 시도

  • 이 있는지 확인에 특정 응용 프로그램
  • 토글 비행기 모드
  • 재설정 네트워크
  • 다시 시작 장치에 &입니다 실제로 장치 dataTaskWithRequest이 실패했을 때 연결되었습니다.

어떤 아이디어가 있습니까? 놓친 설정이 있습니까? 내가 놓친 info.plist의 설정 (왜 1이 작동하나요?)

+0

는 서버가 외부 사용자의 셀룰러 네트워크에서 도달 할 몇 가지 점에서이 도움이 발견

request.setValue(nil, forHTTPHeaderField: "Origin") request.setValue(nil, forHTTPHeaderField: "Host") request.setValue(nil, forHTTPHeaderField: "Referer") 

에 의해 수정되었습니다? 웹 브라우저 또는 이와 유사한 방법으로 ISP가 차단하는지 확인해보십시오. – dgatwood

+0

브라우저에서 서버에 연결할 수 있습니다. iOS 앱에서 오는 요청에 문제가있는 것 같습니다. 앱 내부에서 발생하는 리디렉션 요청의 일부 재 작성이 필터링 될 수 있습니다. 문제가 발생한 사용자로부터 서버의 응답을 캡처하는 새로운 빌드 작성 – Ajwhiteway

답변

0

그래서 dgatwood가 올바른 위치에있었습니다.

경우에 따라 앱 내부의 요청이 외부 서버로 리 라우팅되고 다른 경우에는 내부 서버로 리 라우팅되고 있습니다. 이러한 요청은 WKWebView에서 발생한 것이므로 WKWebView에서 가져온 표준 HTTPHeaderFields를가집니다. 이러한 요청이 응용 프로그램의 배경에 살고 작성된 미니 서버에서 안쪽으로 가리키는 되었기 때문에이 세 가지 헤더는

이상 요청

  • 원산지
  • 리퍼러
  • 호스트에 대한 잘못된 정보를 포함 협조 데이터 계획 거기에 요청에 대한 필터링이 발생했습니다. 헤더 필드에서 선언 된 출처가 호출의 출처와 일치하지 않았기 때문에 셀룰러 네트워크가 요청을 포기하고 실제로 서버에 도달하지 못했습니다.

    문제

    는 희망 누군가가