Skip to content

adaptdk/gsv-expo-app

Repository files navigation

GSV Expo App

Make sure you've got the Expo CLI and Node.js installed. If not, follow the official Expo install guide.

You can read the full Expo documentation here.

⚠️ Sometimes CocoaPods fails to install properly. If that's the case, try installing it via Homebrew:

brew install cocoapods

Get Started

Install Dependencies

npm install

Installs all packages listed in package.json, including workspace packages (@gsv/ui, @gsv/constants).


Development Build

This app uses custom native modules (NFC, Liquid Glass) and therefore cannot run in Expo Go. You must use a development build.

1. Prebuild Native Projects

npx expo prebuild

Generates the ios/ and android/ native project files from app.json and the registered plugins.

2. Build a Development Client

iOS

eas build --profile development --platform ios

Android

eas build --profile development --platform android

Install the resulting .ipa / .apk on your device or simulator.

3. Start the Dev Server

npm start

Or, if your device is connected via USB:

npm run start:usb

Or over a tunnel (for remote devices):

npm run start:tunnel

Automated Setup Workflow (iOS)

1. Open the Xcode Workspace

After running npx expo prebuild, open the workspace in Xcode before running or debugging the app:

open ios/gsvexpoapp.xcworkspace

2. Configure Signing in Xcode

Once Xcode is open:

  1. Go to gsvexpoapp > Targets > Signing & Capabilities
  2. For each build configuration (Debug, Release):
    • Ensure Team is set to G.S.V MATERIELUDLEJNING AS
    • Make sure Automatically manage signing is enabled

3. Run the App on a Simulator or Device

npm run ios

Or target a specific device:

npx expo run:ios --device

Manual Approach (via CLI)

List Available Simulators

xcrun simctl list devices

Run on iOS

npm run ios

Run on Android

npm run android

Run on Web

npm run web

EAS Build Profiles

Defined in eas.json:

Profile Distribution Notes
development Internal Includes expo-dev-client
preview Internal Production-like, internal testing
production Store Auto-increments version

Build for a specific profile:

eas build --profile <profile> --platform <ios|android>

Storybook

The app includes Storybook for component development and visual testing.

npm run storybook

Stories are located in components/stories/.


Native Modules

NFC (modules/nfc)

Custom Expo module wrapping platform-native NFC APIs:

  • iOS: CoreNFC (NFCNDEFReaderSession)
  • Android: android.nfc.NfcAdapter

⚠️ Requires a development build — will not work in Expo Go. Run npx expo prebuild and build via EAS before using NFC features.

Liquid Glass (modules/liquid-glass)

Custom native view module providing the Liquid Glass UI effect (iOS only).


Useful Links


⚠️ Common Issues & Fixes

1. Native Module Not Found / App Crashes on Launch

If you see errors about missing native modules (e.g., GsvNfc, GsvLiquidGlass):

  • Make sure you have run npx expo prebuild
  • Rebuild the development client via EAS
  • Do not try to run the app in Expo Go

2. iOS Signing Error

If you see:

Command CodeSign failed with a nonzero exit code

Fix:

  • Make sure your repository is not synced by iCloud.
  • Move the project to a non-synced directory:
mkdir ~/not_synced && cd ~/not_synced
git clone https://github.com/ORG/gsv-expo-app.git

3. CocoaPods / Pod Install Fails

cd ios && pod install --repo-update

If that doesn't work, clean the pod cache:

pod cache clean --all
cd ios && pod install

Or install CocoaPods via Homebrew if it isn't available:

brew install cocoapods

4. DerivedData or Xcode Build Cache Issues

rm -rf ~/Library/Developer/Xcode/DerivedData

Then rebuild in Xcode or via EAS.

5. Node Modules Out of Sync

rm -rf node_modules
npm install

6. Prebuild Leaves Stale Native Files

If native behaviour is unexpected after modifying app.json or plugins:

npx expo prebuild --clean

⚠️ This will delete and regenerate the ios/ and android/ directories.

7. Broken or Invalid Certificates

If Xcode certificates become invalid:

  1. Open Xcode > Settings > Accounts
  2. Remove your Apple ID account
  3. Optionally delete Xcode:
    sudo rm -rf /Applications/Xcode.app
  4. Reinstall Xcode via the App Store or Apple Developer website
  5. Re-sign in with your Apple ID
  6. Open the project again and reconfigure signing as described in the setup steps above

Happy coding 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors