2016-08-03 92 views
0

我已經寫在斯威夫特2.有到我們的服務器調用的應用程序中的移動iOS應用程序通過的iOS 9+ Testflight蜂窩數據不工作

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

我有3臺iPad蜂窩網絡數據。 1內部,我可以訪問並可以連接到調試器。 2外部,我無法訪問,必須提出問題,以瞭解發生了什麼事情。

內部iPad可以在WiFi和Cellular上同時使用構建X,我的意思是請求通過並與服務器聯繫良好。

外部iPads通過WiFi工作,但無法通過手機工作。

我們試圖

  • 確保移動數據是,&對特定的應用程序
  • 繃飛行模式
  • 重置網絡
  • 重新啓動設備
  • 確保實際設備當dataTaskWithRequest失敗時有連接。

任何想法可能會發生在這裏?有沒有設置錯過? info.plist中的設置(爲什麼有1個工作),我已經錯過了?

+0

是您的服務器與外部用戶的蜂窩網絡可達的修正?您可以嘗試使用網絡瀏覽器或類似方式檢查ISP的阻止。 – dgatwood

+0

服務器可從瀏覽器訪問,這似乎只是來自iOS應用程序的請求的問題。有一些重寫請求被重定向發生在應用程序內部,可能會被過濾。製作新版本以捕獲出現問題的用戶對服務器的響應 – Ajwhiteway

回答

0

所以dgatwood在正確的軌道上。

在某些情況下,應用程序內部的請求正在重新路由到外部服務器,而在其他情況下,內部服務器正在重新路由。由於這些請求源於WKWebView,因此它們具有來自WKWebView的標準HTTPHeaderFields。由於這些要求都在寫住在應用程序的背景迷你服務器向內指向這三個頭包含不正確的信息的請求

  • 產地
  • Referer的
  • 主機

過一個合作數據計劃正在過濾發生的請求。由於標題字段中聲明的來源與呼叫的來源不匹配,因此蜂窩網絡正在丟棄請求,並且他們從未真正到達服務器。

這件事是通過

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

希望有人認爲這很有幫助在某些時候