# Pitfalls

This file is used to document problems, that occurred during development and how to fix them.

## Ionic Framework

### Build platform Android

#### Problem

After calling `ionic cordova build android` the gradle version is not set correctly (4.1 instead of 4.6)

#### Solution

- Go to folder `APP_FOLDER/platforms/android/cordova/lib/builders/`
- Open file `GradleBuilder.js` and change gradle version to `gradle-4.6-all.zip`
  in line `var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'https\\://services.gradle.org/distributions/gradle-4.1-all.zip';`
- Repeat this for file `StudioBuilder.js`

#### Problem

`android.support... not found` on build

#### Solution

```
npm install jetifier
npx jetify
npx cap sync android
```

[more here](https://stackoverflow.com/questions/62195760/ionic-capacitor-build-cannot-find-symbol-android-support-v4-app-activitycompat)

### Run platform iOS

#### Problem

Currently, the iOS project build with cordova uses the old build system.
The command `ionic cordova run ios` runs into the error `/platforms/ios/build/emulator/StApps.app/Info.plist file not found.`

#### Solution

- Either use the command: `ionic cordova emulate ios -- --buildFlag="-UseModernBuildSystem=0"`
- Or open the iOS project in Xcode and change build system in workspace settings to `Lagacy Build System`. Then the normal run command works also.

## Cypress

#### Problem

The browser doesn't open or the tests don't connect to a browser

#### Cause

Cypress was installed to a read-only location, see
[this issue](https://github.com/cypress-io/cypress/issues/18893).
This can be the case if you use NixOS.

#### Solution

Make sure the cypress folder is writable before each launch

```shell
chmod -R +rw ~/.config/Cypress
```
