iOS 真機調試不能串連網路的排錯過程,ios排錯
開發環境:
macOS 10.12.1Xcode 8.1Qt 5.8gSOAP 2.8
iPhone 6S+iOS 10.1.1
問題:使用 Qt Quick 寫了一個跨平台的應用,在Win10、Android、macOS下都已經正常運行,但是串連到 iOS 真機調試的時候,gSOAP 調用 Webservice 總是返回錯誤碼28,我就根據百度出來的下面的 gSOAP 錯誤代碼錶一直在尋找有關 SOAP_DIME_END 的錯誤。
傳回值錯誤碼表(ERROR CODE)
SOAP_EOF |
-1 |
Unexpected end of file, no input, or timeout while receiving data |
SOAP_ERR |
-1 |
|
SOAP_OK |
0 |
No error |
SOAP_CLI_FAULT |
1 |
The service returned a client fault (SOAP 1.2 Sender fault) |
SOAP_SVR_FAULT |
2 |
The service returned a server fault (SOAP 1.2 Receiver fault) |
SOAP_TAG_MISMATCH |
3 |
An XML element didn't correspond to anything expected |
SOAP_TYPE |
4 |
An XML Schema type mismatch |
SOAP_SYNTAX_ERROR |
5 |
An XML syntax error occurred on the input |
SOAP_NO_TAG |
6 |
Begin of an element expected, but not found |
SOAP_IOB |
7 |
Array index out of bounds |
SOAP_MUSTUNDERSTAND |
8 |
An element needs to be ignored that need to be understood |
SOAP_NAMESPACE |
9 |
Namespace name mismatch (validation error) |
SOAP_USER_ERROR |
10 |
|
SOAP_FATAL_ERROR |
11 |
Internal error |
SOAP_FAULT |
12 |
An exception raised by the service |
SOAP_NO_METHOD |
13 |
The dispatcher did not find a matching operation for the request |
SOAP_GET_METHOD |
14 |
HTTP GET operation not handled |
SOAP_EOM |
15 |
Out of memory |
SOAP_NULL |
16 |
An element was null, while it is not supposed to be null |
SOAP_DUPLICATE_ID |
17 |
Multiple occurrences of the same element ID on the input |
SOAP_MISSING_ID |
18 |
Element ID missing for an HREF on the input |
SOAP_HREF |
19 |
Reference to object is incompatible with the object refered to |
SOAP_UDP_ERROR |
20 |
Message too large to store in UDP packet |
SOAP_TCP_ERROR |
21 |
A connection error occured |
SOAP_HTTP_ERROR |
22 |
An HTTP error occured |
SOAP_SSL_ERROR |
23 |
An SSL error occured |
SOAP_ZLIB_ERROR |
24 |
A Zlib error occured |
SOAP_DIME_ERROR |
25 |
DIME parsing error |
SOAP_DIME_HREF |
26 |
DIME attachment has no href from SOAP body |
SOAP_DIME_MISMATCH |
27 |
DIME version/transmission error |
SOAP_DIME_END |
28 |
End of DIME error |
SOAP_MIME_ERROR |
29 |
MIME parsing error |
SOAP_MIME_HREF |
30 |
|
SOAP_MIME_END |
31 |
|
SOAP_VERSIONMISMATCH |
32 |
SOAP version mismatch or no SOAP message |
SOAP_PLUGIN_ERROR |
33 |
Failed to register plugin |
SOAP_DATAENCODINGUNKNOWN |
34 |
SOAP 1.2 DataEncodingUnknown fault |
SOAP_REQUIRED |
35 |
Attributed required validation error |
SOAP_PROHIBITED |
36 |
Attributed prohibited validation error |
SOAP_OCCURS |
37 |
Element minOccurs/maxOccurs validation error |
SOAP_LENGTH |
38 |
Element length validation error |
SOAP_FD_EXCEEDED |
39 |
|
實在解決不了了,於是下載了 iOS 10.0 Simulator ,在 iOS 虛擬機器上跑了一下,沒有問題,說明可能是真機系統許可權的問題。因為我用的手機卡放在我的 Mate8 上,iPhone 開發機上沒有卡,是串連的 WIFI,突然想到,是不是應該把卡插到 iPhone 開發機上試一下。插上卡之後,手機立馬提示是否允許使用網路,同意之後,就可以連網了。然後在【使用無線區域網路與蜂窩移動的應用】中可以看到我的應用程式了。其實前面說了一大堆都是廢話,只不過是記錄了一下我昨天嘔心瀝血大半天的填坑過程。總而言之,你如果真機調試 iOS 應用,最好插著你的 SIM 卡。 今天上午看到一篇相關的文章,如下:
來自為知筆記(Wiz)