Developer quit- please help me migrate


#1

So I’ve been put in a pretty unfortunate bind- our relationship with our developer soured and they’ve bailed on helping us migrate a project that’s been in development for over a year.

It’s my fault for not doing a better job at making sure something like this couldn’t happen, but so it goes.

Anyway, what I’ve received looks like this:
Untitled-1

I’m guessing that’s the important parts that I need. From what I’ve read, using Ionic is best done via some sort of versioning control- so I’ve got a secondary repository setup for the iOS/Android software that is separate from our firmware repository (thankfully, that was more often handed over to us and is mostly bug free).

I’ve got literally 0 use time with Ionic, I’ve signed up for a month to month Ionic Pro account in case I need it for deployment.

I could really use a bit of assistance here, and would much appreciate some direction by anyone who’s got some experience in the shoes I’m in.

I can set things up either in MacOS or Windows. All the same to me, goal is to get us setup properly with version control and be able to get a build of the app to TestFlight.

Thank you.


#2

If you’re building cross platform it will be easier to work on MacOS. From windows you won’t be able to test on IOS Devices, where from MacOS you can test on both ios and android.

The move from ionic V1 to ionic V4 can be a tough move if you’re not already familiar with both Ionic and Angular. If you still have V1 code, I’d suggest working on a local build.

You should look into CircleCI if you need cross platform MacOS and Android CI builds.

Good luck!


#3

Hi there, thanks for replying.

To be entirely honest, I’m not sure what version they were using. Is there a version logged into the config files somewhere?


#4

From the ionic.config.json file…

"type": "ionic-angular",

I’m guessing they were using the later / latest version of Ionic?


#5

look in your package.json that’ll give you a better idea of what version they’re using.


#6
{
  "name": "testApp",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "start": "npm run ionic:serve",
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "lint": "ionic-app-scripts lint",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "4.4.4",
    "@angular/compiler": "4.4.4",
    "@angular/compiler-cli": "4.4.4",
    "@angular/core": "4.4.4",
    "@angular/forms": "4.4.4",
    "@angular/http": "4.4.4",
    "@angular/platform-browser": "4.4.4",
    "@angular/platform-browser-dynamic": "4.4.4",
    "@angular/tsc-wrapped": "4.4.4",
    "@firebase/storage": "^0.1.1",
    "@ionic-native/ble": "^4.5.3",
    "@ionic-native/bluetooth-serial": "4.4.2",
    "@ionic-native/camera": "4.3.1",
    "@ionic-native/core": "4.3.0",
    "@ionic-native/dialogs": "4.4.2",
    "@ionic-native/file": "4.3.2",
    "@ionic-native/geolocation": "4.3.2",
    "@ionic-native/http": "4.4.2",
    "@ionic-native/media-capture": "4.3.2",
    "@ionic-native/push": "4.3.1",
    "@ionic-native/social-sharing": "4.3.1",
    "@ionic-native/splash-screen": "4.3.0",
    "@ionic-native/status-bar": "4.3.0",
    "@ionic-native/transfer": "3.14.0",
    "@ionic-native/video-editor": "4.3.2",
    "@ionic/storage": "2.0.1",
    "amazon-cognito-identity-js": "1.28.0",
    "autoprefixer": "^7.2.4",
    "aws-sdk": "2.130.0",
    "cordova-android": "6.3.0",
    "cordova-browser": "4.1.0",
    "cordova-ios": "^4.5.4",
    "cordova-plugin-advanced-http": "^1.9.1",
    "cordova-plugin-ble-central": "^1.1.4",
    "cordova-plugin-bluetooth-serial": "^0.4.7",
    "cordova-plugin-camera": "^2.4.1",
    "cordova-plugin-compat": "^1.2.0",
    "cordova-plugin-device": "^1.1.7",
    "cordova-plugin-dialogs": "^1.3.4",
    "cordova-plugin-file": "^4.3.3",
    "cordova-plugin-geolocation": "^2.4.3",
    "cordova-plugin-googlemaps-sdk": "git+https://github.com/mapsplugin/cordova-plugin-googlemaps-sdk.git",
    "cordova-plugin-ionic-webview": "^1.1.16",
    "cordova-plugin-media-capture": "^1.4.3",
    "cordova-plugin-splashscreen": "^4.1.0",
    "cordova-plugin-statusbar": "git+https://github.com/apache/cordova-plugin-statusbar.git",
    "cordova-plugin-video-editor": "^1.1.3",
    "cordova-plugin-whitelist": "^1.3.3",
    "cordova-plugin-x-socialsharing": "^5.2.1",
    "cordova-sqlite-storage": "^2.2.0",
    "es6-promise-plugin": "^4.1.0",
    "firebase": "4.8.0",
    "ionic-angular": "3.8.0",
    "ionic-img-viewer": "2.8.0",
    "ionic-plugin-keyboard": "^2.2.1",
    "ionicons": "3.0.0",
    "lodash": "^4.17.4",
    "moment": "^2.19.0",
    "phonegap-plugin-push": "2.2.2",
    "rxjs": "5.4.3",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.18"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.0.0",
    "@types/node": "^8.0.33",
    "typescript": "2.3.4"
  },
  "description": "An Ionic project",
  "cordova": {
    "platforms": [
      "browser",
      "android",
      "ios"
    ],
    "plugins": {
      "cordova-plugin-device": {},
      "cordova-plugin-ionic-webview": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-whitelist": {},
      "ionic-plugin-keyboard": {},
      "cordova-sqlite-storage": {},
      "cordova-plugin-x-socialsharing": {},
      "cordova-plugin-camera": {
        "CAMERA_USAGE_DESCRIPTION": " ",
        "PHOTOLIBRARY_USAGE_DESCRIPTION": " "
      },
      "cordova-plugin-file": {},
      "cordova-plugin-geolocation": {
        "GEOLOCATION_USAGE_DESCRIPTION": "To locate you"
      },
      "cordova-plugin-media-capture": {
        "CAMERA_USAGE_DESCRIPTION": " ",
        "MICROPHONE_USAGE_DESCRIPTION": " ",
        "PHOTOLIBRARY_USAGE_DESCRIPTION": " "
      },
      "cordova-plugin-video-editor": {},
      "cordova-plugin-dialogs": {},
      "cordova-plugin-advanced-http": {},
      "cordova-plugin-bluetooth-serial": {},
      "phonegap-plugin-push": {
        "FCM_VERSION": "11.0.1",
        "SENDER_ID": "739286824602"
      },
      "cordova-plugin-ble-central": {}
    }
  }
}

#7

looks like ionic 4, so hopefully all the code under /src/ is ionic 4, unless by migrate you just mean getting it into another git repo. Also you usually don’t need the ionic pro stuff just to get up and running on local development. Maybe their support could be helpful… but we haven’t found much use for most of the ionic pro features, we use too many plugins that ionic view and devapp do not support.


#8

Make a backup of the files u received

Run npm i in the root folder

The run ionic serve to do an initial test how it runs and what the first list of issues can be. Then try ionic cordova run android (or ios)

Assuming you have npm and ionic cli installed


#9

Understood.

Can you give me a breakdown of what I need in order to get this up and running?

As I mentioned, the goal is at least get builds made so we can put additional people on TestFlight.

Whatever the best practices is of that, just looking for some guidance. I mean migrate as in, I currently have that folder of files and nothing else- so a dev environment must be built up obviously in order to get builds of the apps out.

Thank you!!!

//edit

Thanks tommertom, much appreciated. Any guidance on setting up certs for iOS and Android?


#10

Well, lots of the stuff is documented fairly properly on Ionic. I liked this part even though it seems only for v1, it works for v > 1 too

https://ionicframework.com/docs/v1/guide/publishing.html

If you are completely in the blind, I suggest you to follow the documentation to setup your environment, make everything work with a simple starter app, try to get it to build cleanly before going into the code for your own app. Then you know your dependencies and setup is good and your developer workflow works.


#11

Thanks everyone. I’ve got the app successfully building via “ionic serve”, going to switch environments and set things up cleanly on MacOS.


#12

Well, I’m lost.

The install proceedure to get a dev environment is almost non-existent. Lots of options, very few guides.

I’ve gotten the “ionic serve” to launch properly on MacOS, but attempting to build for iOS leads to this:

ld: warning: directory not found for option '-L/Users/user/Library/Developer/Xcode/DerivedData/Test-babnqazpakhhrxgwjcdfnfeadkub/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac'
ld: warning: directory not found for option '-L/Users/user/Library/Developer/Xcode/DerivedData/Test-babnqazpakhhrxgwjcdfnfeadkub/Build/Products/Debug-iphonesimulator/Protobuf'
ld: warning: directory not found for option '-L/Users/user/Library/Developer/Xcode/DerivedData/Test-babnqazpakhhrxgwjcdfnfeadkub/Build/Products/Debug-iphonesimulator/nanopb'
ld: library not found for -lGoogleToolboxForMac

Can anyone point me to setting up an iOS based dev environement for ionic? The generic “npm install ionic cordova” really doesn’t get you anywhere…


#13

I am not using xcode/ios dev workflow

Have u setup xcode? And managed to build a demo app through it?

Cordova needs that


#14

The “Deploying” step in the documentations covers iOS/Android environment set up and common issues: https://ionicframework.com/docs/intro/deploying/


#15

CocoaPods!!! Ugh. Got it working.