# Mobile Workstation Setup

{% hint style="info" %}
This guide is for setting up react native workstations once you already have the standard Elentra ME developer workstation. Please refer to the Getting Started guide if you have not yet done this. <https://docs.elentra.org/technical/developers/getting-started>&#x20;
{% endhint %}

## Prerequisites

### Node.js

1. Install Node Version Manager (NVM) by executing the following via Terminal:

   ```
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
   ```
2. Install [Node.js](https://nodejs.org/) using:

   ```
   nvm install 10.15.2
   nvm use 10.15.2
   ```
3. Ensure that Node.js was installed properly:

   ```
   node -v
   ```
4. Install Yarn globally:

   ```
   npm install -g yarn
   ```
5. Install Expo globally:

   ```
   yarn global add expo-cli
   ```

## Getting Started

```
cd ~/Sites
git clone git@github.com:ElentraProject/elentra-3x-mobile.git
cd elentra-3x-mobile
yarn install
expo start
```

## React Native Debugger

You may also want to install the standalone React Native developer tools and debugger. For more info, please visit: <https://reactnative.dev/docs/debugging>

## Building Releases

Detailed documentation is available at <https://docs.expo.io/versions/latest/distribution/building-standalone-apps>

```
expo build:android
expo build:ios
```

## Deploying Releases

### Android

URL: <https://play.google.com/apps/publish/>

Username: <entradadeveloper@gmail.com>

### Apple

URL: [https://appstoreconnect.apple.com](https://appstoreconnect.apple.com/)

Username: <medtech@queensu.ca>

#### Manually uploading the iOS app

<https://docs.expo.io/versions/latest/distribution/uploading-apps/#manually-uploading-your-app>

In order to see your app on Testflight, you will first need to submit your .IPA file to Apple using Apple Transporter. In order to do this, there are a few perquisite steps which you may not have followed previously if this is your first app submission to Apple:

1. Install Apple Transporter (required as of Xcode 11.1+): <https://apps.apple.com/app/transporter/id1450874784?mt=12>
2. Open Transporter and login with your Apple ID and the app specific password generated in step 3 Follow the steps to agree to the necessary terms.
3. Follow the steps to upload your IPA to Apple.

#### Processing

It will take a while for the application to process. Could be 5 minutes, could be 5 hours... I recommend installing [WatchBuild](https://github.com/fastlane/watchbuild). Once watchbuild is installed simply run:

```
watchbuild -a com.entrada.entradamobile -u medtech@queensu.ca
```

#### Submitting

[Original IDFA Link](https://segment.com/docs/sources/mobile/ios/quickstart/#step-5-submitting-to-the-app-store)

When you submit to the app store, be aware that that the IDFA is collected for use in doing mobile install attribution with destinations like Mobile App Tracking. Even if you’re not currently doing mobile install attribution, if you get asked, “Does this app use the Advertising Identifier (IDFA)?” on this page, you’ll want to check the following three boxes:

1. “Attribute this app installation to a previously served advertisement”
2. “Attribute an action taken within this app to a previously served advertisement”
3. “I, YOUR\_NAME, confirm that this app, and any third party…”

Note, you should not check the box labeled “Serve advertisements within the app”.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.elentra.org/learn-elentra-mobile/elentra-mobile-technical-documentation/mobile-workstation-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
