This document will guide you through building standalone app from Managed Expo project using local Turtle builder.
- Ensure you've got
turtle-cli
installed locally
npm i -g turtle-cli
turtle
has some references forshellTarballs
- these are located under<place where turtle is installed>/turtle-cli/shellTarballs
cd `which turtle`/../../shellTarballs
turtle
downloadsshellTarballs
and places them under~/.turtle/workingdir
directory (/android
or/ios
respectively).
You can replace specific shellTarball
by replacing existing one with yours:
You can take a look at
/.circleci/config.yml
file and search forshell_app_ios_build
orshell_app_android_build
commands. There are responsible for preparing newshellTarballs
that are used byturtle
service to build standalone Expo apps from Managed Expo projects.
- Run
et android-build-packages --packages all
. - Run
./buildAndroidTarballLocally.sh
. That would create freshly packedshellTarball
underartifacts
directory.
You cannot prevent script from archiving shellTarball, because it has to move actual files and not symlinks.
- Remove
shellTarball
from~/.turtle/workingdir/android/<sdkXX>
. - Recreate removed directory & extract new
shellTarball
into that directory:
tar -zxvf ./artifacts/android-shell-builder.tar.gz --directory ~/.turtle/workingdir/android/<sdkXX>
turtle-cli
checks for correctness ofshellTarball
by looking for.ready
file containing URL that points toshellTarball
available online. We need to foolturtle-cli
by creating such file that would contain correct URL address.
cat `<place where turtle is installed>/turtle-cli/shellTarballs/android/sdkXX > ~/.turtle/workingdir/android/<sdkXX>/.ready
yarn
in extracted directory.- Remove contents of
android/maven
directory inside theexpo
repository.
- Create new
shellTarball
by following commands from/.circleci/config.yml
describingshell_app_ios_build
task. - Replace current
shellTarball
with freshly built one (see Android section).