From 0d4ff1b7ea768cceca0405c665e322c0d6b5ba20 Mon Sep 17 00:00:00 2001 From: Bruno Lemos Date: Mon, 22 Jan 2018 07:48:45 -0800 Subject: [PATCH] Add extensibility point on react-native-xcode.sh script Summary: Original pull request: #12863 Useful for generating source maps, for example. Feature parity with Android, that already have this extensibility point on `build.gradle`: ``` project.ext.react = [ extraPackagerArgs: [...] ] ``` Xcode > Build Phases > Bundle React Native code and Images ``` export NODE_BINARY=node export EXTRA_PACKAGER_ARGS="--sourcemap-output ${SRCROOT}/build/main.jsbundle.map" ../node_modules/react-native/scripts/react-native-xcode.sh ``` [IOS] [FEATURE] [./react-native-xcode.sh] - Added $EXTRA_PACKAGER_ARGS extensibility point Closes https://github.com/facebook/react-native/pull/16933 Differential Revision: D6771709 Pulled By: yungsters fbshipit-source-id: a33614b45b1e3537daeb31504fdd3a402dc70ff0 --- scripts/react-native-xcode.sh | 129 ---------------------------------- 1 file changed, 129 deletions(-) delete mode 100755 scripts/react-native-xcode.sh diff --git a/scripts/react-native-xcode.sh b/scripts/react-native-xcode.sh deleted file mode 100755 index 121eb5f2f..000000000 --- a/scripts/react-native-xcode.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/bash -# Copyright (c) 2015-present, Facebook, Inc. -# All rights reserved. -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. - -# Bundle React Native app's code and image assets. -# This script is supposed to be invoked as part of Xcode build process -# and relies on environment variables (including PWD) set by Xcode - -if [[ "$SKIP_BUNDLING" ]]; then - echo "SKIP_BUNDLING enabled; skipping." - exit 0; -fi - -case "$CONFIGURATION" in - *Debug*) - if [[ "$PLATFORM_NAME" == *simulator ]]; then - if [[ "$FORCE_BUNDLING" ]]; then - echo "FORCE_BUNDLING enabled; continuing to bundle." - else - echo "Skipping bundling in Debug for the Simulator (since the packager bundles for you). Use the FORCE_BUNDLING flag to change this behavior." - exit 0; - fi - else - echo "Bundling for physical device. Use the SKIP_BUNDLING flag to change this behavior." - fi - - DEV=true - ;; - "") - echo "$0 must be invoked by Xcode" - exit 1 - ;; - *) - DEV=false - ;; -esac - -# Path to react-native folder inside node_modules -REACT_NATIVE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" - -# Xcode project file for React Native apps is located in ios/ subfolder -cd "${REACT_NATIVE_DIR}"/../.. - -# Define NVM_DIR and source the nvm.sh setup script -[ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.nvm" - -# Define entry file -if [[ -s "index.ios.js" ]]; then - ENTRY_FILE=${1:-index.ios.js} -else - ENTRY_FILE=${1:-index.js} -fi - -if [[ -s "$HOME/.nvm/nvm.sh" ]]; then - . "$HOME/.nvm/nvm.sh" -elif [[ -x "$(command -v brew)" && -s "$(brew --prefix nvm)/nvm.sh" ]]; then - . "$(brew --prefix nvm)/nvm.sh" -fi - -# Set up the nodenv node version manager if present -if [[ -x "$HOME/.nodenv/bin/nodenv" ]]; then - eval "$("$HOME/.nodenv/bin/nodenv" init -)" -fi - -[ -z "$NODE_BINARY" ] && export NODE_BINARY="node" - -[ -z "$CLI_PATH" ] && export CLI_PATH="$REACT_NATIVE_DIR/local-cli/cli.js" - -[ -z "$BUNDLE_COMMAND" ] && BUNDLE_COMMAND="bundle" - -if [[ -z "$BUNDLE_CONFIG" ]]; then - CONFIG_ARG="" -else - CONFIG_ARG="--config $(pwd)/$BUNDLE_CONFIG" -fi - -nodejs_not_found() -{ - echo "error: Can't find '$NODE_BINARY' binary to build React Native bundle" >&2 - echo "If you have non-standard nodejs installation, select your project in Xcode," >&2 - echo "find 'Build Phases' - 'Bundle React Native code and images'" >&2 - echo "and change NODE_BINARY to absolute path to your node executable" >&2 - echo "(you can find it by invoking 'which node' in the terminal)" >&2 - exit 2 -} - -type $NODE_BINARY >/dev/null 2>&1 || nodejs_not_found - -# Print commands before executing them (useful for troubleshooting) -set -x -DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH - -if [[ "$CONFIGURATION" = "Debug" && ! "$PLATFORM_NAME" == *simulator ]]; then - PLISTBUDDY='/usr/libexec/PlistBuddy' - PLIST=$TARGET_BUILD_DIR/$INFOPLIST_PATH - IP=$(ipconfig getifaddr en0) - if [ -z "$IP" ]; then - IP=$(ifconfig | grep 'inet ' | grep -v ' 127.' | cut -d\ -f2 | awk 'NR==1{print $1}') - fi - - if [ -z ${DISABLE_XIP+x} ]; then - IP="$IP.xip.io" - fi - - $PLISTBUDDY -c "Add NSAppTransportSecurity:NSExceptionDomains:localhost:NSTemporaryExceptionAllowsInsecureHTTPLoads bool true" "$PLIST" - $PLISTBUDDY -c "Add NSAppTransportSecurity:NSExceptionDomains:$IP:NSTemporaryExceptionAllowsInsecureHTTPLoads bool true" "$PLIST" - echo "$IP" > "$DEST/ip.txt" -fi - -BUNDLE_FILE="$DEST/main.jsbundle" - -$NODE_BINARY $CLI_PATH $BUNDLE_COMMAND \ - $CONFIG_ARG \ - --entry-file "$ENTRY_FILE" \ - --platform ios \ - --dev $DEV \ - --reset-cache \ - --bundle-output "$BUNDLE_FILE" \ - --assets-dest "$DEST" - -if [[ $DEV != true && ! -f "$BUNDLE_FILE" ]]; then - echo "error: File $BUNDLE_FILE does not exist. This must be a bug with" >&2 - echo "React Native, please report it here: https://github.com/facebook/react-native/issues" - exit 2 -fi