react-native: iOS pod install is failing on project init
Description
When running npx react-native init <myproject>
, using any template, the pod install
phase fails on macOS 11.1 and XCode 12.3.
Environment:
- React Native version: 4.13.1. Also please note that your issue template says to run
react-native info
, which is not a valid command. - macOS version: 11.1.0 (x86 architecture, not an M1)
- npm version: 7.3.0
- node version: 15.5.1
- XCode version: 12.3
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.
- run
npx react-native init myproject
- “Installing Cocoapods dependencies” step fails.
cd
ing into the ios directory and runningpod install
produces additional logs, but still fails.
Expected Results
The project should complete cocoapod install and work correctly.
Snack, code example, screenshot, or link to a repository:
Initial command error output (omitting ascii-art):
✔ Downloading template
✔ Copying template
✔ Processing template
✖ Installing CocoaPods dependencies (this may take a few minutes)
✖ Installing CocoaPods dependencies (this may take a few minutes)
error Error: Failed to install CocoaPods dependencies for iOS project, which is required by this template.
Please try again manually: "cd ./myproject/ios && pod install".
CocoaPods documentation: https://cocoapods.org/
Manual pod install
output:
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `Folly` from `../node_modules/react-native/third-party-podspecs/Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Downloading dependencies
Installing CocoaAsyncSocket (7.6.4)
Installing CocoaLibEvent (1.0.0)
Installing DoubleConversion (1.1.6)
Installing FBLazyVector (0.63.4)
Installing FBReactNativeSpec (0.63.4)
Installing Flipper (0.54.0)
Installing Flipper-DoubleConversion (1.1.7)
Installing Flipper-Folly (2.3.0)
Installing Flipper-Glog (0.3.6)
[!] /bin/bash -c
set -e
#!/bin/bash
# Copyright (c) Facebook, Inc. and its 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="armv7"
fi
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
./configure --host arm-apple-darwin
# Fix build for tvOS
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 AppleTVOS */
#if TARGET_OS_TV
#undef HAVE_SYSCALL_H
#undef HAVE_SYS_SYSCALL_H
#undef OS_MACOSX
#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/"
checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for arm-apple-darwin-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-apple-darwin-gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.3.sdk
checking whether the C compiler works... no
/Users/damien/Library/Caches/CocoaPods/Pods/Release/Flipper-Glog/0.3.6-1dfd6/missing: Unknown `--is-lightweight' option
Try `/Users/damien/Library/Caches/CocoaPods/Pods/Release/Flipper-Glog/0.3.6-1dfd6/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
configure: error: in `/Users/damien/Library/Caches/CocoaPods/Pods/Release/Flipper-Glog/0.3.6-1dfd6':
configure: error: C compiler cannot create executables
See `config.log' for more details
I can tell that the Flipper-glog dependency appears to be the point of failure, but I do not know how to troubleshoot that internal RN dependency properly. Possible relevant issues are #25561 and #30372. In one case, the recommended solution is to ensure that XCode.app is pointed to by the xcode-select
tool.
However, running
sudo xcode-select -s /Applications/XCode.app/Contents/Developer
# or
sudo xcode-select --switch /Applications/XCode.app
followed by pod install
does not resolve this issue. I have also tried a couple of additional steps:
- Reinstalling cocoapods, using
sudo gem
and/or usingbrew install
- Reinstalling XCode 12.3
This is a critical problem, as no new RN projects can currently be created in my environment.
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 10
- Comments: 27
sudo xcode-select --switch /Applications/Xcode.app
Run this and the pod install should run smoothly; M1 machine or not.
+1 ( on M1 Mac )
Fixed for me
source: https://stackoverflow.com/questions/68044863/react-native-error-bug-in-ruby-interpreter-failed-to-install-cocoapods-depend
@jvrenes the link you’ve shared is the same thing I already posted in the original question, they are saying to run:
This did not fix the issue for me on either an x86 or M1 machine.
I found a solution that worked for me:
https://flaviocopes.com/react-native-fix-iphoneos-cannot-be-located/
Uninstall cocoapods first Then close terminal Go to get info of the terminal then click on open with roseta Then open the terminal Install cocoapods And from there (in terminal ) Command npx react-native init projectname
first time will take time after that all template builds will be fast
And also after this you can use the terminal of you choice if editors
its a one time huccup but it works
That worked for me, thanks.
It’s important to note this was what I linked to in the original post - this did not fix my issue. In fact I opened this ticket initially because this command didn’t fix the issue. I also said this again on Feb 1.
Please read the thread carefully before posting the same thing over again, otherwise we just risk confusing people by saying the answer is something it is not.
@jesper-bylund yes that is correct - I didn’t do anything except go to other projects for a month. When I tried again on an M1 Macbook Air, it worked fine. Like I said in the OP, the error message was actually thrown from
flipper-glog
so it’s very likely that an upstream fix to that dependency is what fixed this.