1#!/usr/bin/env bash 2 3# Downloading the rncache can fail easily so we just copy it. 4# > This comes from `node_modules/react-native/src/rncache.json` 5mkdir -p ~/.rncache 6cp -f rncache/* ~/.rncache/ 7 8# React Native environment variables 9 10# Ensure file 11touch ~/.bash_profile 12 13# Prevent duplication by searching for an existing value 14ANDROID_PATH_EXIST=`cat ~/.bash_profile | grep ANDROID_HOME=` 15 16if [ -z "$ANDROID_PATH_EXIST" ]; then 17 echo ' 18 export ANDROID_HOME=$HOME/Library/Android/sdk 19 export PATH=$PATH:$ANDROID_HOME/tools 20 export PATH=$PATH:$ANDROID_HOME/tools/bin 21 export PATH=$PATH:$ANDROID_HOME/platform-tools 22 ' >> ~/.bash_profile 23fi 24 25# Reload the profile 26source $HOME/.bash_profile 27 28# Ensure the `sdkmanager` is installed for React Android 29sdk_manager="${ANDROID_HOME}/tools/bin/sdkmanager" 30if [ ! -f "${sdk_manager}" ]; then 31 echo "\nDownloading android sdk tools...\n" 32 33 sdk_tools_url=`curl https://developer.android.google.cn/studio/ | egrep -o "https://dl.google.com/android/repository/sdk-tools-darwin-.+?\.zip"` 34 sdk_tools_name=`basename ${sdk_tools_url}` 35 # Remove possible existing copy 36 rm -f ${sdk_tools_name} 37 # Download and install `sdkmanager` 38 curl -O ${sdk_tools_url} 39 mkdir -p ${ANDROID_HOME} 40 tar -zxvf ${sdk_tools_name} -C ${ANDROID_HOME} 41fi 42 43mkdir -p $HOME/.android 44touch $HOME/.android/repositories.cfg 45 46# Auto accept all the Google licenses 47yes | ${sdk_manager} --licenses 48 49sdk_manager_options='--no_https --verbose --channel=0' 50# To launch the emulator by shell script 51${sdk_manager} emulator ${sdk_manager_options} 52 53# Install NDK... 54${sdk_manager} ndk-bundle ${sdk_manager_options} 55${sdk_manager} platform-tools ${sdk_manager_options} 56# Install Intel HAXM (for emulators) 57${sdk_manager} "extras;intel;Hardware_Accelerated_Execution_Manager" ${sdk_manager_options} 58# Install the version of Android required for React Native 59${sdk_manager} "platforms;android-26" "system-images;android-26;google_apis;x86_64" "build-tools;26.0.3" ${sdk_manager_options} 60${sdk_manager} --update ${sdk_manager_options} 61 62echo '✅ React Native is now setup'