Run the stacks app on iOS, Android, and Web.
Install deps.
npm install
Start the dev server.
npx expo start
change config.ts to point to the right api, then:
./deploy.sh
Run bundle locally.
npx serve dist -l 8081
Upload bundle to google cloud storage bucket: www.getstacks.io
Build with the EAS service.
eas build --platform ios --profile production
Submit to App Store.
eas submit -p ios
eas build --platform ios --profile development
Then copy the QR code to download the build onto your device.
The prebuild may not be necessary, but this generates the native code for the target OS,
a base layer of sorts.
npx expo prebuild -p ios
eas build -p ios --local --profile development
This may fail on several accounts. I had the following errors:
fastlane not found
So i did
sudo gem install fastlane -NV
then I got some error like
some dep is too old, or ruby version too old
so I had to install a newer version of ruby
brew install rbenv\nbrew install ruby-build
rbenv init
eval "$(rbenv init - zsh)"
rbenv install 3.3.3
rbenv global 3.3.3
Then I could finally install fastlane.
sudo gem install fastlane -NV
Then I could finally run the build
eas build -p ios --local --profile development
The build errored
Distribution certificate with fingerprint xxxxxxxxxxx hasn't been imported successfully
So I downloaded my Apple Cert and added it to my keychain.
https://developer.apple.com/account/resources/certificates/list
I also added a credentials.json file to the project (gitignored) by executing this but idk if you need it.
eas credentials
But I still got the same error, so I installed this other universal cert and got past that error. expo/eas-cli#1331 (comment)
The dev build works in a weird way, in that even though it is running on device, it relies on a Metro server running on my Mac. I thought that I needed to specify the EXPO_PUBLIC_ENV when building the dev build. But it turns out that I must specify that when running the server. So start the server like this:
EXPO_PUBLIC_ENV=dev-device npx expo start
The prefix EXPO_PUBLIC_
is required for all env vars.