App works in Andoird and Ionic View, but not on a real iOS device

I’m trying to publish an ionic app to the Apple Store, but unfortunately the app is not working as expected on a real iPhone device. The app works great on Android devices and with Ionic View on iOS devices, but not with the TestFlight. So, there must be something that’s different between the Ionic View and the actual app that runs on iOS. The app was compiled for iOS 9.x using the Ionic Pro service and uploaded afterwards to Apple’s store for testing.

Here are the operations that not work as expected on iPhone (but work fine with Ionic View or Andoird devices):

  1. Cannot open an external URL with InAppBrowser cordova plugin in a timely manner: It takes too much time (i.e. minutes), even though eventually I can see the external site. So, it works but with a big delay.

  2. When filling in an email input box, the keyboard remains opened, even though I navigate to another page of the app. It should close automatically.

  3. I cannot save the phone contacts into a file. For this operation I’m using the standard file plugin, along with the contacts plugin to read the phone contacts.

  4. When I open the app all the ngx-translate keys remain as keys. When I re-open the app the keys are using the correct values from the appropriate language file.

My hope is that there is a “silver bullet” and somehow all these issues can be solved with a few changes in the config file, or by installation the latest version of some plugins, re-installing the ios platform, or something similar. Have any of you experienced the same issues?

Here is the complete list of the plugins I’m using:

@angular/common”: “4.1.3”,
"@angular/compiler": “4.1.3”,
"@angular/compiler-cli": “4.1.3”,
"@angular/core": “4.1.3”,
"@angular/forms": “4.1.3”,
"@angular/http": “4.1.3”,
"@angular/platform-browser": “4.1.3”,
"@angular/platform-browser-dynamic": “4.1.3”,
"@ionic-native/app-version": “^4.2.1”,
"@ionic-native/contacts": “^4.1.0”,
"@ionic-native/core": “3.12.1”,
"@ionic-native/email-composer": “^4.1.0”,
"@ionic-native/file": “^4.1.0”,
"@ionic-native/file-chooser": “^4.1.0”,
"@ionic-native/file-encryption": “^4.1.0”,
"@ionic-native/file-transfer": “^4.1.0”,
"@ionic-native/globalization": “^4.3.0”,
"@ionic-native/in-app-browser": “^4.5.2”,
"@ionic-native/keyboard": “^4.1.0”,
"@ionic-native/splash-screen": “3.12.1”,
"@ionic-native/status-bar": “3.12.1”,
"@ionic/storage": “2.0.1”,
"@ngx-translate/core": “^7.2.2”,
"@ngx-translate/http-loader": “^0.1.0”,
"@types/sjcl": “^1.0.28”,
"@types/xlsx": “0.0.36”,
“cordova-android”: “^6.3.0”,
“cordova-browser”: “~5.0.2”,
“cordova-ios”: “~4.5.4”,
“cordova-plugin-app-version”: “^0.1.9”,
“cordova-plugin-compat”: “^1.2.0”,
“cordova-plugin-contacts”: “^2.3.1”,
“cordova-plugin-device”: “^1.1.4”,
“cordova-plugin-email”: “^1.2.6”,
“cordova-plugin-file”: “4.3.3”,
“cordova-plugin-file-transfer”: “1.6.3”,
“cordova-plugin-globalization”: “^1.0.8”,
“cordova-plugin-inappbrowser”: “^2.0.1”,
“cordova-plugin-splashscreen”: “^4.0.3”,
“cordova-plugin-statusbar”: “^2.2.2”,
“cordova-plugin-whitelist”: “^1.3.1”,
“cordova-sqlite-storage”: “^2.0.4”,
“ionic-angular”: “3.6.0”,
“ionic-plugin-keyboard”: “^2.2.1”,
“ionicons”: “3.0.0”,
“rxjs”: “5.4.0”,
“sjcl”: “^1.0.7”,
“sw-toolbox”: “3.6.0”,
“ts-md5”: “^1.2.2”,
“ts-xlsx”: “0.0.11”,
“zone.js”: “0.8.12”

Have you tried running your app on iPhone simulator using Xcode?

No, as I don’t have access to MAC/XCode.

You will need to use xCode if you are building for iOS. Only then you can get the real error…

I get your point, but most people that use Ionic Pro do not have a MAC, so I was hoping that there is a generic solution regardless of the symptoms that you may see with xCode …

Hi @alterora sorry to say this, according to me you may not get one “silver bullet” that could solve all these. Practically speaking, without running an app on the OS that it suppose to work, you cannot finish it’s testing itself.
I mean without testing your app on the iOS device you would not have submitted to iTunes for test flight.

I understand that your using ionic pro just because you don’t have access to Mac, The file system of Android and iOS are totally different. so just by running your app on ionic view you cannot conclude that functionality is working fine.

So my suggestion is run the app on either iOS simulator or on the real iOS devices. And real-time debug them via Safari browser and Xcode.

Thank you for your suggestions. I was hoping to avoid this process, but it might be the only realistic way.