# Mobile App Installation

This guide helps you install the Investra mobile app, connect it to your backend, run it locally, and create Android or iOS builds with Expo EAS.

If you need branding, Firebase, Stripe, package name, or app icon setup, continue with the Mobile App Configuration guide after finishing this page.

## Before You Start

Make sure your machine is ready before installing the app.

Requirement | Minimum
--- | ---
Node.js | 22 or higher
Bun | 1.x or higher
Java (JDK) | 17
Android Studio / Android SDK | Required for Android local run
Xcode | Required for iOS local run on macOS

Tip

We recommend using Bun for faster dependency installation.

## Step 1: Extract the Project

After downloading the package from CodeCanyon, extract `mobile.zip` and open the mobile project folder.

    cd mobile

## Step 2: Install Dependencies

Use one package manager only.

    bun install

    npm install

## Step 3: Create the Environment File

Copy the example environment file:

    cp .env.example .env

Then update the required values:

    EXPO_PUBLIC_API_BASE_URL=https://app.yourdomain.com
    EXPO_PUBLIC_APP_ENV=production
    EXPO_PUBLIC_TOKEN_NAME=token

Important

Do not use `localhost` when testing on a physical device or emulator. Use your local IP instead, such as `http://192.168.1.100:8000`.

## Step 4: Run the App Locally

Use local native run commands during development.

### Android

Start an Android emulator or connect a physical Android device, then run:

    npx expo run:android

### iOS

On macOS, open the iOS Simulator and run:

    npx expo run:ios

Note

Investra uses native modules such as Firebase and Stripe, so local testing should be done with `expo run:android` or `expo run:ios`.

## Step 5: Build Android and iOS with Expo EAS

Use Expo Application Services (EAS) when you want installable cloud builds for testing, Play Store, or App Store release.

### 1. Install EAS CLI and log in

    npm install --global eas-cli
    eas login

If you do not want a global install, you can use:

    npx eas-cli@latest login

### 2. Configure EAS for the project

Run this once from the `mobile-app` folder:

    eas build:configure

This creates `eas.json` and links the project with your Expo account.

Important

Before running your first EAS build, make sure your app config file (`app.config.ts`), `.env`, `google-services.json`, and `GoogleService-Info.plist` are already set correctly.

### 3. Build Android

    # Preview build for internal testing
    eas build --platform android --profile preview

    # Production build for release
    eas build --platform android --profile production

### 4. Build iOS

    # Preview build for internal testing
    eas build --platform ios --profile preview

    # Production build for release
    eas build --platform ios --profile production

Warning

For iOS device builds and App Store release, you need an active Apple Developer account.

## ⚠️ Mobile Publishing Disclaimer

Before publishing to the Apple App Store or Google Play Store, be aware of the following:

### App Store Compliance

Financial investment apps are subject to strict review guidelines:

Store | Requirements
--- | ---
Apple App Store | Requires disclosure of financial services, investment features. May require SEC registration verification.
Google Play Store | Requires disclosure of investment features. Financial apps must comply with Play Store financial policies.

### Regional Restrictions

- Some regions restrict investment apps or require specific licenses
- You may need to configure geo-restrictions in your app or in the app store listings
- Consult with a legal professional about which regions you can legally serve

### Apple Developer Program

- Annual fee required ($99/year for individuals, $299/year for companies)
- You must complete identity verification
- App Store review typically takes 1-7 days

### Google Play Developer Account

- One-time registration fee ($25)
- Identity verification required
- Review typically takes 1-3 days

### Pre-Launch Checklist

- [ ] Review the Investment & Legal Disclaimer and ensure your platform complies
- [ ] Configure KYC verification as required by your jurisdiction
- [ ] Implement geo-restrictions if operating in restricted regions
- [ ] Prepare privacy policy and terms of service
- [ ] Ensure all investment risk disclosures are visible in-app

## Quick Troubleshooting

- Check `node -v` and confirm Node.js 18 or higher is installed.
- Make sure `ANDROID_HOME` or Android Studio SDK is configured for Android local builds.
- Confirm `google-services.json` and `GoogleService-Info.plist` are placed in the mobile app root when Firebase is enabled.
- Run `eas whoami` to confirm you are logged in before starting EAS builds.
- Confirm `eas.json` exists before using `eas build`.
- If Metro cache causes issues, run `npx expo start -c`.

## Next Step

Continue to the Mobile App Configuration guide for:

- Firebase setup
- Branding and app identity
- Stripe configuration
- App icons and package IDs