簡體   English   中英

在以下情況下,您的應用在運行iOS 11.1且已連接到IPv6網絡的iPad和iPhone上崩潰了:

[英]Your app crashed on iPad and iPhone running iOS 11.1 connected to an IPv6 network when we:

我的應用程序在測試時,我的應用程序在IPad和Iphone上運行良好。我正在使用AFNetworking 2.0進行API的調用,並且由於IPv6網絡,蘋果應用程序的評論又一次又一次地拒絕了我的應用程序,我使用了硬編碼的IP地址,例如http:// 192.230.66.71/XXXXXXXX/XX/我對此感到沮喪,請有人幫助我現在該怎么辦。

您不應該根據Apple的規則使用硬編碼IP地址。

不要使用IP地址文字,請確保未將點號的IPv4地址文字傳遞給getaddrinfo和SCNetworkReachabilityCreateWithName等API。 相反,請使用高級網絡框架和與地址無關的API版本(例如getaddrinfo和getnameinfo),並向它們傳遞主機名或完全限定的域名(FQDN)。 請參見getaddrinfo(3)Mac OS X開發人員工具手冊頁和getnameinfo(3)Mac OS X開發人員工具手冊頁。

注意:在iOS 9和OS X 10.11及更高版本中,NSURLSession和CFNetwork在運行DNS64 / NAT64網絡的設備上本地自動從IPv4文字合成IPv6地址。 但是,您仍然應該刪除IP地址文字的代碼。

我認為您應該注意兩件事:

1.不建議使用硬編碼IP地址,但根據上述說明和搜索,我發現一些開發人員在其應用中通過了帶有IPv4地址文字的審核。
因此,請嘗試先不要在您的應用中使用IPv4地址文字,然后確保您注意到我下面提到的第二件事。

2.您的應用可能會因其他與網絡相關的問題而崩潰。 就像我之前評論的一樣。 我將其粘貼在此處,以使您更加清楚。

確保安全處理接收到的數據。 我的應用程序由於相同的原因而被拒絕,但我發現真正的問題是,在某些情況下,接收到的數據可能是服務器錯誤,這導致應用程序崩潰。 我通過修復該錯誤通過了應用審查。

例如,該應用程序在您的網絡下運行良好,但在其他地方可能會失敗,例如連接速度太慢並導致超時。 在這種情況下,您將獲得一些服務器錯誤數據或空數據,然后如果在代碼中強行解包數據,則應用程序將崩潰。 就我而言,Apple拒絕了我的具有IPv6問題的應用程序,這不是真正的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM