Why Apple Tests Exclusively on IPv6
During App Store review, Apple inspects your binary on a dedicated cellular IPv6-only network with NAT64/DNS64 gateway translation.
If your app crashes on boot or fails to load remote data, you will receive an immediate rejection under Guideline 2.1 - Performance: App Completeness.
Top 3 Causes of IPv6 Failures
- Hardcoded IPv4 addresses: Using URLs like
http://192.168.1.50:3000or literal IP strings instead of standard DNS domain names (https://api.yourdomain.com). - Incompatible HTTP libraries: Legacy Cordova plugins or outdated XHR wrappers that fail with iOS synthetic DNS64 resolution.
- Insecure endpoints & invalid SSL certificates: Apple blocks unencrypted traffic failing App Transport Security (ATS).
Testing IPv6 Locally on Your Mac
- Connect your Mac to the internet via Ethernet cable.
- Open System Settings ➔ Sharing ➔ Internet Sharing.
- Hold the Option (Alt) key and check Create NAT64 Network.
- Connect your physical iPhone to the Mac's Wi-Fi network and launch your app.
Enabling Capacitor Native HTTP
To guarantee 100% compliance and optimal network speeds, activate the native HTTP bridge in capacitor.config.ts:
const config: CapacitorConfig = {
appId: 'com.kerweb.app',
appName: 'MyApp',
plugins: {
CapacitorHttp: {
enabled: true,
},
},
};