博客地址已遷移到:https://devthinking.com
在App中適配
- 在傳nodename的時候不要用ip地址,用域名;
- 檢查工程中有沒有用到以下api,這些只是針對ipv4處理的,有的話就刪了:
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()
- 如果用到了以下ipv4的api,相應的ipv6也需要做處理:
AF_INET
PF_INET
struct in_addr
struct sockaddr_in
kDNSServiceProtocol_IPv4
- 在App中,如果用了AFN3.0以上,都支持了ipv6,但是有一點在AFNetworkReachabilityManager中,在manager的初始化方法中,判斷的手機是否是大于9.0的系統(tǒng),有些不對,原來代碼是這樣:
+ (instancetype)manager
{
#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
上面的代碼應該改成這樣,才會生效:
#if (TARGET_OS_IPHONE && NSFoundationVersionNumber > 1240) || (TARGET_OS_MAC && NSFoundationVersionNumber >= 1252)
服務器適配
如果你說在App端都適配了ipv6,并且自己用mac本搭建了ipv6熱點測試通過,為什么應用審核還是被拒呢?看下面的解答。
- 用mac創(chuàng)建的熱點和蘋果review時用的真實的ipv6網(wǎng)絡是不一樣的;
- 需要檢查服務器域名4A的支持。詳細的問題,請看apple論壇IPv6 and App Review
, 檢查4A的支持可以用google的toolbox dig. - 有關AAAA的文檔,可以看wikipedia.
微信公眾號
開發(fā)者思維 devthinking
QQ交流群:295976280
iOS交流群(一)群二維碼.png