Ionic run ios serves blank index.html

When I run ionic run ios (or ionic emulate ios), the app never seems to move past the splashscreen. And in safari dev tools, I see that the index.html file that was loaded is almost empty, which would explain why nothing happens:

<html>
 <head></head>
 <body></body>
</html>

This only happens on an iOS device or emulator. This issue does not happen with ionic serve in a browser nor on android devices.

Also, if I run ionic run ios -l -c -s (in livereload mode), everything works perfectly. So only in non-livereload mode does this issue occur.

I’ve removed and added the ios platform multiple times and the result is still the same.

Any idea why the index.html file is empty when running ionic run ios without livereload?

Here is the output of ionic info:

Cordova CLI: 6.5.0 
Ionic Framework Version: 2.2.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.1.4
ios-deploy version: 1.9.1 
ios-sim version: 3.0.0 
OS: macOS Sierra
Node Version: v6.10.0
Xcode version: Xcode 8.2.1 Build version 8C1002

Here is the output of ionic plugin list:

branch-cordova-sdk 2.5.9 "branch-cordova-sdk"
com.phonegap.plugins.nativesettingsopener 1.2 "Native settings"
cordova-custom-config 3.0.14 "cordova-custom-config"
cordova-plugin-camera 2.3.1 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.6 "Console"
cordova-plugin-contacts 2.3.0 "Contacts"
cordova-plugin-device 1.1.5 "Device"
cordova-plugin-email-composer 0.8.3 "EmailComposer"
cordova-plugin-headercolor 1.0 "HeaderColor"
cordova-plugin-splashscreen 4.0.2 "Splashscreen"
cordova-plugin-statusbar 2.2.2 "StatusBar"
cordova-plugin-whitelist 1.3.2 "Whitelist"
cordova-plugin-wkwebview-engine 1.1.2-dev "Cordova WKWebView Engine"
cordova-sms-plugin 0.1.11 "Cordova SMS Plugin"
es6-promise-plugin 3.0.2 "Promise"
ionic-plugin-keyboard 2.2.1 "Keyboard"

Adding <allow-navigation href="*" /> to config.xml appears to fix this issue.