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.
Remember: if you've modified any
expoview
orpackage/*
that has it's native code published fromexpoview-npm-package
then you'll have to rebuild them! To do so go here. command:et android-build-packages --sdkVersion XX.X.X
- 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.
- 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).