Skip to content
Rayyan QCRI Mobile app, a client for rayyan.qcri.org. Built with the awesome ionic framework.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
fastlane
hooks
res
resources
scss
www-config
www
.bowerrc
.dockerignore
.env
.gitignore
Dockerfile
Dockerfile-android
LICENSE.txt
README.md
azure-pipelines-android.yml
azure-pipelines-ios.yml
bower.json
config.xml
cordova-build-ios.sh
gulpfile.js
ionic.config.json
package-lock.json
package.json

README.md

System requirements

  • Install NodeJS 8
  • Install ionic, gulp-cli, ios-sim, ios-deploy through npm: globally -g
  • Install local SDKs for local build (e.g. Xcode, AndroidSDK)
  • Install app dependancies using npm install then gulp install (should install platforms, plugins and www/libs)

For detailed instructions, check azure-pipelines-android.yml and azure-pipelines-ios.

Build instructions

  • ionic serve (livereload)
  • ionic build --platform {ios,android} # builds only
  • ionic emulate --platform {ios,android} # builds and runs on emulator
  • ionic run device --platform {ios,android} # builds and runs on device

Releasing the app

  • Create a git branch
  • Increment versions in config.xml:
    • version="0.1.0": Increment every time a new release is published to the users
    • android-versionCode="5": Every upload to Google Play on any track (Internal test, Beta, Production, ...) must have a new number, even if it is not released to the users.
    • ios-CFBundleVersion="8": Every upload to iTunesConnect on any track (TestFlight or Production) must have a new number, even if it is not released to the users.
  • Write release notes and optionally update other metadata:
    • For iOS:
      • Update the file fastlane/ios/metadata/en-US/release_notes.txt which will appear to the end users.
      • Update the file fastlane/ios/what-to-test.txt which will only appear to your testers on TestFlight.
      • Update any other metadata in fastlane/ios/metadata.
    • For Android:
      • Create 5 files in fastlane/android/metadata/en-US/changelogs/ with the tens digit corresponding to the android-versionCode you incremented above and the units from 1 to 5 which corresponds to the 5 architecture the app is compiled against. For example: 51.txt, 52.txt, ... 55.txt. Note that if Crosswalk plugin is removed from the cordova plugin list, only 1 architecture will be compiled and only 1 file needs to be created, e.g. 5.txt. Other new plugins of course may result in multiple APKs.
      • Update any other metadata in fastlane/android/metadata.
  • Commit and push your changes to the new branch
  • Send a Pull Request to master which will trigger build and release pipelines on Azure
  • Test the app on TestFlight and Google Play tester program
  • Activate the production stage on Azure pipelines which will promote the app to all users

License (MIT)

Copyright (c) 2018 Qatar Computing Research Institute

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

You can’t perform that action at this time.