Note: This is a reference implementation of a contact tracing app and was based on the original release of the Ireland Contact Tracing app.
Following these instructions will allow you to run and build the project on your local machine for development and testing purposes.
Currently, Google / Apple are only making the ENS entitlement (GAEN API) required by this application to function available to one app per country / state and the account has to be associated with the government or public health authority. It's not currently possible for individual developers to have this entitlement enabled on their accounts. See https://www.google.com/covid19/exposurenotifications/ and https://developer.apple.com/contact/request/download/Exposure_Notification_Addendum.pdf for details. The Linux Foundation Public Health Project provides a template that may be used to start the process of requesting entitlement.
Follow the official guide "Setting up the development environment" to set up your local machine to develop iOS and Android applications with React Native.
Install an Xcode version that supports iOS 13.5, required by the ExposureNotification framework used by the app. The Exposure Notification capability is not yet available in iOS 14 beta (last beta published: beta 2).
Install yarn
globally:
npm install -g yarn
For other installation methods, follow the official Installation guide.
Clone this repository.
Install the npm dependencies:
yarn install
Create your .env
file or copy it from the .env.sample
:
cp .env.sample .env
Move to ios/
folder and install the CocoaPods dependencies:
cd ios && pod install
Start the React Native bundler:
yarn start
To start the Android application, run:
yarn android
To start the iOS one, run:
yarn ios
Any new SVG icons which are included within assets/icons
should be optimized with npm run optimize:svg
.
There are import and export scripts located in translations-script
. These can be run with npm run translations:import
and npm run:translations:export
. The output file(output.xlsx
) is output in the translations-script
directory.
The import script expects an input.xlsx
file to be located in the translations-script
directory.
bundle install
In order to build, sign, and upload your app to TestFlight, you need to have configured a provisioning profile (with the Exposure Notification entitlement) and added a signing key to your Keychain.
Copy and then customize the dotenv file with your developer account information:
cd ios
cp .env.default.sample .env.default
Use fastlane to build the app and upload it to TestFlight:
cd ios
fastlane beta
This command will increment the build number. It will not change the app version. That must be done in the project settings manually.
In order to build, sign, and upload your app to an internal test track, you need to have configured an app in the Play console that has been enabled for the Exposure Notification API, and installed an upload key and API access key locally. You will also need to know the keystore and key passwords.
Copy and then customize the dotenv file with your signing information:
cd android
cp .env.default.sample .env.default
Use fastlane to build the app and push it to a draft Internal Test Track:
cd android
fastlane internal
This command will increment the build number. It will not change the app version. That must be done in the project settings manually.
- @colmharte - Colm Harte [email protected]
- @jasnell - James M Snell [email protected]
- @aspiringarc - Gar Mac Críosta [email protected]
- @ShaunBaker - Shaun Baker [email protected]
- @floridemai - Paul Negrutiu [email protected]
- @jackdclark - Jack Clark [email protected]
- @andreaforni - Andrea Forni [email protected]
- @jackmurdoch - Jack Murdoch [email protected]
- @dharding - David J Harding [email protected]
- @ckiss - Cristian Kiss [email protected]
- @jh3y - Jhey Tompkins [email protected]
- TBD
- TBD
Linux Foundation Public Health
Copyright (c) 2020 HSEIreland Copyright (c) The COVID Green Contributors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.