You will need to set up your local environment/device using eas device:create
. This is because the audio library we are using requires some native modules that must be built separately from the React app itself. If developing on iOS, this setup process might also require you have an Apple Developer account with the device(s) you are developing on registered to that account. More details here.
Once you have your device set up and have a pre-build of the app (see Local Development section below)...
Install dependencies:
npm install
Run the app:
npx expo start
You may have to use --tunnel
flag for some local network/VPN setups:
npx expo start --tunnel
https://docs.expo.dev/build/setup/
To push a build to Expo using the development profile:
eas build --profile development --platform ios
or with
eas build -p ios --non-interactive --profile external
These are directions to build the app with EAS and then publish to testflight. The first time this process is done, EAS will prompt you for an appstore key file which can be obtained from an admin of the appstore account. This assumes you already have an appstore account that you can login with.
npm install -g expo-cli
eas login
--auto-submit
)
eas build --platform ios --profile external
eas submit --platform ios
The app store metadata is saved within the store.config.json
file. If this file is changed, you will need to push the updates to the app store using eas metadata:push
An important thing to remember from the above example is the configVersion property. It helps with versioning changes that are not backward compatible.
Deep links are links that will open up in the mobile app instead of the browser. These links are defined in the apple-app-site-association (AASA) file, which is hosted on the main wavlake.com website, public/.well-known/apple-app-site-association
.
The following is the process for adding/removing/editing which paths will open in the app and which will not:
wavlake.com/.well-known/apple-app-site-association
.https://developer.android.com/training/app-links/verify-android-applinks#web-assoc
Deep links for Android function similarly to iOS. The Android links are defined within the mobile app, but there is a verification file hosted on the main wavlake.com website, public/.well-known/assetlinks.json
. This file contains the signature(s) of the Android app builds that utilize the deep links.
New Android Builds must have their new signature added to the assetlinks.json file!
adb shell pm get-app-links com.wavlake.mobile
eas credentials
and select a build profileRelease > Setup > App signing
.The following is the process for adding/removing/editing with paths will open in the app and which will not:
app.json
file to include the linking changes.
e.g.
{
"scheme": "https",
"host": "*.wavlake.com",
"pathPrefix": "/playlist/"
}
wavlake.com/.well-known/assetlinks.json
.This app uses Firebase to authenticate users. The app is not totally dependent on Firebase, a user can still login as a read only account to look around, or with just an nsec.
However, if you are trying to run this app locally, you will need to setup a firebase account, generate the missing files, and place them in the root directory so that you can produce a build for Android and/or iOS
google-services.json
GoogleService-Info.plist
Alternatively, you can modify the build process to not depend on firebase. You will also need to modify the login page and any other firebase dependent features in the app.
Additional reading - https://rnfirebase.io/#configure-react-native-firebase-modules