+Messages are encrypted end-to-end using OpenPGP. SSI support is based on
+the hyperledger provided by Indy SDK and Animo SDK.
## Credits
-### Financial support
-
-* NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310
+* NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement [No 825310](https://nlnet.nl/project/SylkMobile/)
+* NGI eSSIF-Lab program, in colaboration with Bloqzone [ADDING SSI TO INTERNET COMMS USING SYLK SUITE](https://www.ngi.eu/funded_solution/essi_ioc_44/)
### People
+* Adrian Georgescu - Project lead
* Saúl Ibarra Corretgé - Inception architect / original idea
-* Tijmen de Mes - API, Conference and desktop
+* Tijmen de Mes - API, Conference, Chat and desktop features
-Run `git-crypt unlock` to check that you can decrypt the files in the repo. If you can't you'll need to generate a GPG key and pass it to someone with access to the repo. A good guide is located at https://medium.com/@sumitkum/securing-your-secret-keys-with-git-crypt-b2fa6ffed1a6
-
### Running the app
Use `react-native run-ios --help` and `react-native run-android --help` to give you all you need to know. You shouldn't ever have to build from Xcode or Android Studio.
### Running on the iOS Simulator
Currently we have issues running a build of ios from the cli using `yarn react-native run-ios` so instead, open up xcode and run it there
```bash
open ios/sylk.xcworkspace/
```
### Running on the Android Simulator or device
If you don't have any simulators running, and don't have an android device plugged in (or available to adb) React Native will start up a simulator for you. If you have a device available (doesn't matter if its real or a simulator) this command will output to the device.
> --deviceId [string] builds your app and starts it on a specific device/simulator with the given device id (listed by running "adb devices" on the command line).
### Running without debugging
To run the app on your device without tethering it to USB:
On Android:
```bash
yarn react-native run-android --variant=release
```
On iOS:
Select menu Product -> Scheme -> Edit scheme andselect for Run Build Configuration = Release
Beware that iOS push tokens are still meant for sandbox unless the app is
released through Apple Store.
### Clean the project
You might want to bring the project back to a clean repo if you're hitting any issues.
Try it as a dry-run first
```bash
git clean -d -x --dry-run
```
```bash
git clean -d -x -f
```
### Building the app for deployment
We use `fastlane` for building production versions of the app.
Fastlane can handle all the metadata around your entry into the relevant App Stores and much much more too.
Currently we have two commands - you will need to open Xcode and allow it to sync the deployment key as we allow Xcode to control that rather than do it ourselves. We could add it directly into the project with git-crypt and tell fastlane to use it to make this easier.
```bash
fastlane ios beta
```
```bash
fastlane android beta
```
### Patches
We utilise the [patch-package](https://www.npmjs.com/package/patch-package) module in order to patch the `react-native-callkeep` module instead of maintaining a complete fork. See their README on how to make changes to the patch and how those patches get installed automatically within this project on install of npm modules.