skip to Main Content

I followed the steps to set up the environment for react native on Mac: https://reactnative.dev/docs/environment-setup. But when I reach the part to initialize a fresh new project, I get this error: react-native init error

Then when I cd ios and try pod install I get this output:

warn Multiple Podfiles were found: ios/Podfile,vendor/bundle/ruby/2.7.0/gems/cocoapods-core-1.12.1/lib/cocoapods-core/Podfile. Choosing ios/Podfile automatically. If you would like to select a different one, you can configure it via "project.ios.sourceDir". You can learn more about it here: https://github.com/react-native-community/cli/blob/master/docs/configuration.md
Framework build type is static library
[Codegen] Generating ./build/generated/ios/React-Codegen.podspec.json
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
[Codegen] Found FBReactNativeSpec
/Users/eric/Github/AwesomeProject/node_modules/react-native/scripts/react_native_pods_utils/script_phases.rb:51: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
/Users/eric/Github/AwesomeProject/node_modules/react-native/scripts/react_native_pods_utils/script_phases.rb:51: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `boost` from `../node_modules/react-native/third-party-podspecs/boost.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Fetching podspec for `hermes-engine` from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`
Downloading dependencies
Installing CocoaAsyncSocket (7.6.5)
Installing DoubleConversion (1.1.6)
Installing FBLazyVector (0.71.8)
Installing FBReactNativeSpec (0.71.8)
Installing Flipper (0.125.0)
Installing Flipper-Boost-iOSX (1.76.0.1.11)
Installing Flipper-DoubleConversion (3.2.0.1)
Installing Flipper-Fmt (7.1.7)
Installing Flipper-Folly (2.6.10)
Installing Flipper-Glog (0.5.0.5)
Installing Flipper-PeerTalk (0.0.4)
Installing Flipper-RSocket (1.4.3)
Installing FlipperKit (0.125.0)
Installing OpenSSL-Universal (1.1.1100)
Installing RCT-Folly (2021.07.22.00)
Installing RCTRequired (0.71.8)
Installing RCTTypeSafety (0.71.8)
Installing React (0.71.8)
Installing React-Codegen (0.71.8)
Installing React-Core (0.71.8)
Installing React-CoreModules (0.71.8)
Installing React-RCTActionSheet (0.71.8)
Installing React-RCTAnimation (0.71.8)
Installing React-RCTAppDelegate (0.71.8)
Installing React-RCTBlob (0.71.8)
Installing React-RCTImage (0.71.8)
Installing React-RCTLinking (0.71.8)
Installing React-RCTNetwork (0.71.8)
Installing React-RCTSettings (0.71.8)
Installing React-RCTText (0.71.8)
Installing React-RCTVibration (0.71.8)
Installing React-callinvoker (0.71.8)
Installing React-cxxreact (0.71.8)
Installing React-hermes (0.71.8)
Installing React-jsi (0.71.8)
Installing React-jsiexecutor (0.71.8)
Installing React-jsinspector (0.71.8)
Installing React-logger (0.71.8)
Installing React-perflogger (0.71.8)
Installing React-runtimeexecutor (0.71.8)
Installing ReactCommon (0.71.8)
Installing SocketRocket (0.6.0)
Installing Yoga (1.14.0)
Installing YogaKit (1.18.1)
Installing boost (1.76.0)
Installing fmt (6.2.1)
Installing glog (0.3.5)
[!] /bin/bash -c
set -e
#!/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.

set -e

PLATFORM_NAME="${PLATFORM_NAME:-iphoneos}"
CURRENT_ARCH="${CURRENT_ARCH}"

if [ -z "$CURRENT_ARCH" ] || [ "$CURRENT_ARCH" == "undefined_arch" ]; then
    # Xcode 10 beta sets CURRENT_ARCH to "undefined_arch", this leads to incorrect linker arg.
    # it's better to rely on platform name as fallback because architecture differs between simulator and device

    if [[ "$PLATFORM_NAME" == *"simulator"* ]]; then
        CURRENT_ARCH="x86_64"
    else
        CURRENT_ARCH="arm64"
    fi
fi

# @lint-ignore-every TXT2 Tab Literal
if [ "$CURRENT_ARCH" == "arm64" ]; then
    cat <<EOF >>fix_glog_0.3.5_apple_silicon.patch
diff --git a/config.sub b/config.sub
index 1761d8b..43fa2e8 100755
--- a/config.sub
+++ b/config.sub
@@ -1096,6 +1096,9 @@ case $basic_machine in
        basic_machine=z8k-unknown
        os=-sim
        ;;
+   arm64-*)
+       basic_machine=$(echo $basic_machine | sed 's/arm64/aarch64/')
+       ;;
    none)
        basic_machine=none-none
        os=-none
EOF

    patch -p1 config.sub fix_glog_0.3.5_apple_silicon.patch
fi

export CC="$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME --show-sdk-path)"
export CXX="$CC"

# Remove automake symlink if it exists
if [ -h "test-driver" ]; then
    rm test-driver
fi

# Manually disable gflags include to fix issue https://github.com/facebook/react-native/issues/28446
sed -i.bak -e 's/@ac_cv_have_libgflags@/0/' src/glog/logging.h.in && rm src/glog/logging.h.in.bak
sed -i.bak -e 's/HAVE_LIB_GFLAGS/HAVE_LIB_GFLAGS_DISABLED/' src/config.h.in && rm src/config.h.in.bak

./configure --host arm-apple-darwin

cat << EOF >> src/config.h
/* Add in so we have Apple Target Conditionals */
#ifdef __APPLE__
#include <TargetConditionals.h>
#include <Availability.h>
#endif

/* Special configuration for ucontext */
#undef HAVE_UCONTEXT_H
#undef PC_FROM_UCONTEXT
#if defined(__x86_64__)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
#elif defined(__i386__)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__eip
#endif
EOF

# Prepare exported header include
EXPORTED_INCLUDE_DIR="exported/glog"
mkdir -p exported/glog
cp -f src/glog/log_severity.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/logging.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/raw_logging.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/stl_logging.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/vlog_is_on.h "$EXPORTED_INCLUDE_DIR/"

patching file config.sub
1 out of 1 hunks failed--saving rejects to config.sub.rej

I’ve tried everything for hours and nothing works:

For the step involving Ruby, I installed rbenv using brew install rbenv ruby-build and followed the steps after installation that prompted me to add eval "$(rbenv init - zsh)" to my .zshrc file. Since Ruby version 2.7.6 is recommended on that tutorial, I ran rbenv install 2.7.6 then rbenv global 2.7.6. To confirm this worked I ran ruby -v which printed out ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [arm64-darwin22]

Appreciate any suggestions to help me fix this is much appreciated. Thanks

2

Answers


  1. Chosen as BEST ANSWER

    Turns out the problem was windows line endings. I was using a project that was initially developed on windows so it had DOS line endings instead of mac compatible UNIX endings. All I had to do was

    brew install dos2unix
    

    and run

    find ./ -type f -exec dos2unix {} ;
    

    in the project's root directory. Source: https://stackoverflow.com/a/30062242/21949797


  2. did you find any solution? I am facing exactly same issue in my M2 macbook

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search