Ionic 3 to Ionic 4 Service provider issues

Dear All,

I’ve the old project developed in ionic 3. Suddenly I’m unable to publish the mobile app to App store because ionic 3 to 5 version migration is mandatory.

We’ve started migrating 3 to 4 firstly based on the official document steps but we’ve faced a stuck in middle of migrations (compiler errors due to service provided aren’t compatible)

Contact ionic team, they’ve asked to create a paid account and contact.

We created a paid account (Launch plan) and contact again but now they’re asking to purchase Enterprise plan.

We dont know how to purchase the Enterprise plan, please advise!

Our development is hold for 1 month because of this.

Also anybody can advise how to contact the ionic team via Phone? No Contact number found by us

You may probably not need to contact Ionic, someone might have had a similar experience and if you were to mention the services you are having issues with, you may get some help or nudge in the right direction …

Attached the screenshot of the issues facing by us!

From what I see, create another project in Ionic 5, carry over the necessary functionality, rewrite / refactor or create new functionality where need be since moving from Ionic 3 to 5 means major version upgrade. Its a painstaking process but with the least headaches plus you get to use the latest cli’s, modules and packages.

Using tools that go through the code and do automated migration is not bullet proof.

To quote Ionic’s Migration guide

We suggest the following general process when migrating an existing application from Ionic 3 to 4

  1. Generate a new project using the blank starter (see Starting an App)
  2. Copy any Angular services from src/providers to src/app/services
  • Services should include { providedIn: 'root' } in the @Injectable() decorator. For details, please see Angular provider docs.
    e.t.c …

There is no way around the breaking changes, you either refactor your code or create new code afresh.

Just between you and me and the wall over there, I think that’s not great advice. In fact, Ionic Native used to do this, and (thankfully) backtracked. The problem is that it takes away the ability to mock out the service, which is supremely useful, especially in testing and prototyping.