Skip to content

Latest commit

 

History

History
68 lines (44 loc) · 2.46 KB

Development.md

File metadata and controls

68 lines (44 loc) · 2.46 KB

PasswordMaker Development

Prepare dependencies

  • npm install

If new to Ionic

  • npm install -g @ionic/cli

Run locally

  • ionic serve
  • Note that the clipboard feature is currently not available in browser.

Test locally

To run all tests roughly similarly to how CI does:

  • npm run ci

Note that background-ing inside the npm task stopped working on CircleCI with the move to WebdriverIO 9 'BiDi' runner and latest libraries, so the actual CI job now has its steps broken into individual steps with the app start using background. This also gives more legible output.

Test runtime environments

We currently run:

  • Angular tests – largely component / unit tests – via Karma
  • Webdriver.io e2e tests with Chromium, using CircleCI browser base and supporting orb in CI.

Build

Android

  • Set new versionCode and versionName in android/app/build.gradle
  • ionic capacitor build android --prod
  • If first build, in Android Studio choose Build > Select Build Variant... and choose release.
  • In Android Studio, go to _Build > Generate Signed Bundle / APK...
  • Choose to make an Android App Bundle and use your keystore
  • Upload the signed app-release.aab in Google Play Console

iOS

  • Set new CURRENT_PROJECT_VERSION and MARKETING_VERSION in ios/App/App.xcodeproj/project.pbxproj
  • ionic capacitor build ios --prod
  • Open ios/App/App.xcworkspace in Xcode, or let Capacitor do this for you
  • Change target at the top to Any iOS Device (arm64)
  • Product > Archive
  • Distribute App from the Organizer dialogue.

Plugins

In addition to the Ionic-standard Capacitor plugins and Clipboard (for copying passwords), we need to build with Cordova in order to get the Cloud Settings plugin.

There is an additional Cordova dependency of that plugin, cordova-plugin-file. If you have not done a settings restore, the Android build seems to work fine without the Files & Media permission which this plugin presumably adds as an option (at least on Android 11) – but there might be a need for the permission if you do restore settings, so we have not made efforts to override the permission request from the plugin.

Resources update

Icon and splash screen shouldn't need regenerating on each build. But if they change (in resources/), run:

  • npm run resources