IPv6-Only 網路

自 2016 年 6 月 1 日起,所有提交至 App Store 的 app 都須支援 IPv6-Only 網路。由於 NSURLSession 和 CFNetwork API 已支援 IPv6,大多數 app 無須進行任何變更。不過,如果你的 app 使用 IPv4 專屬 API 或寫死的 IP 位址,則須進行變更。在將你的 app 提交至 App Store 進行審查前,請務必測試對 IPv6 的相容性。

如需更多關於支援 IPv6 網路的詳細資訊,請參閱支援 IPv6 DNS64/NAT64 網路。

在 IPv6-Only 環境中測試 App

你應該在 IPv6-Only 網路上測試 app。如果沒有這樣的環境,可按照定期測試 IPv6 DNS64/NAT64 相容性 中的指示設定測試網路。

重要事項:如果使用具備 WWAN 功能的裝置進行測試,請務必在執行測試之前關閉 WWAN,以便確保你的裝置使用 IPv6-Only 的 Wi-Fi。

附註:你可以使用「設定」>「行動服務」>「行動數據」關閉 WWAN;若為北美地區以外的英語本地化版本,請使用「Settings」(設定) >「Mobile」(行動服務) >「Mobile Data」(行動數據)。

IPv4 參照

只要這些 IPv4-Only 結構元件的所有參照能在 IPv6-Only 環境中正常運作,就不必從你的 app 全部移除。

重要事項:我們鼓勵採用不分位址系列的 API,而非分別專為 IPv4 與 IPv6 保留不同的程式碼路徑。

伺服器更新

如果伺服器是在更廣域的網際網路上運作,則無須立即更新。IPv6-Only 裝置可透過 DNS64/NAT64 存取你的伺服器。

附註:最終仍應將伺服器更新為支援 IPv6,這才是常規做法。

如果你的 iOS app 內嵌伺服器 (例如允許使用者從 app 傳出或傳入檔案的網頁伺服器),請確保該伺服器能在 IPv6-Only 環境中正常運作。

從 IPv4 位址合成

如使用 System API 合成 IPv6 位址 中所述,自 iOS 9.2 和 OS X v10.11.2 起,你可使用 getaddrinfo 從 IPv4 位址合成 IPv6 位址。你的 app 將會在配備最新版本 iOS 的裝置上進行測試。

警告:自行合成 IPv6 位址並不容易。具體來說,將 IPv4 位址與 Well-Known Prefix (64:ff9b::/96) 結合成 IPv6 位址的做法並不安全。這種方法可能適用於某些 NAT64 網路,但並非此問題的通用解決方案。

以 IPv4 網路為基礎的配件

我們強烈建議修改配件,以便能在 IPv6-Only 網路上正常運作,做法是讓配件支援 IPv6,或支援 IPv4 鏈路本地定址。當兩部裝置都處於 IPv6-Only 網路環境時,上述的任一種做法,都能讓 app 與配件進行通訊。

如果你的配件不支援這兩種選項,且無法將配件修改為支援,則表示你的配件本身就不符合支援 IPv6 的要求。

附註:上述內容僅適用於 app 和配件在區域網路中的通訊。你 app 的其他部分仍能在 IPv6-Only 環境中正常運作。