#!/bin/bash # Copyright (c) Meta Platforms, Inc. and affiliates. # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. # This script is used to source in Xcode the environment settings required to run properly. # The script first sources the base `.xcode.env` file. # Then it sources the `.xcode.env.local` file if present, to override some local config # Finally, it will execute the command passed i input if any. # # USAGE: # ./with-environment.sh command # Start with a default NODE_BINARY=$(command -v node) export NODE_BINARY # Override the default with the global environment ENV_PATH="$PODS_ROOT/../.xcode.env" if [ -f "$ENV_PATH" ]; then source "$ENV_PATH" fi # Override the global with the local environment LOCAL_ENV_PATH="${ENV_PATH}.local" if [ -f "$LOCAL_ENV_PATH" ]; then source "$LOCAL_ENV_PATH" fi # Check whether NODE_BINARY has been properly set, otherwise help the users with a meaningful error. if [ -n "$NODE_BINARY" ]; then echo "Node found at: ${NODE_BINARY}" else echo "[Warning] You need to configure your node path in the `'.xcode.env' file` environment. " \ "You can set it up quickly by running: " \ "echo 'export NODE_BINARY=$(command -v node)' > .xcode.env " \ "in the ios folder. This is needed by React Native to work correctly. " \ "We fallback to the DEPRECATED behavior of finding `node`. This will be REMOVED in a future version. " \ "You can read more about this here: https://reactnative.dev/docs/environment-setup#optional-configuring-your-environment" >&2 source "${REACT_NATIVE_PATH}/scripts/find-node-for-xcode.sh" fi # Execute argument, if present if [ -n "$1" ]; then $1 fi