This document will guide you through building standalone app from Managed Expo project using local Turtle builder.
- Ensure you've got
turtle-cliinstalled locally
npm i -g turtle-cli
turtlehas some references forshellTarballs- these are located under<place where turtle is installed>/turtle-cli/shellTarballs
cd `which turtle`/../../shellTarballs
turtledownloadsshellTarballsand places them under~/.turtle/workingdirdirectory (/androidor/iosrespectively).
You can replace specific shellTarball by replacing existing one with yours:
You can take a look at
/.circleci/config.ymlfile and search forshell_app_ios_buildorshell_app_android_buildcommands. There are responsible for preparing newshellTarballsthat are used byturtleservice to build standalone Expo apps from Managed Expo projects.
- Run
et android-build-packages --packages all. - Run
./buildAndroidTarballLocally.sh. That would create freshly packedshellTarballunderartifactsdirectory.
You cannot prevent script from archiving shellTarball, because it has to move actual files and not symlinks.
- Remove
shellTarballfrom~/.turtle/workingdir/android/<sdkXX>. - Recreate removed directory & extract new
shellTarballinto that directory:
tar -zxvf ./artifacts/android-shell-builder.tar.gz --directory ~/.turtle/workingdir/android/<sdkXX>
turtle-clichecks for correctness ofshellTarballby looking for.readyfile containing URL that points toshellTarballavailable online. We need to foolturtle-cliby 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
yarnin extracted directory.- Remove contents of
android/mavendirectory inside theexporepository.
- Create new
shellTarballby following commands from/.circleci/config.ymldescribingshell_app_ios_buildtask. - Replace current
shellTarballwith freshly built one (see Android section).