Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS pod install is failing on project init #30690

Closed
damienstanton opened this issue Jan 5, 2021 · 27 comments
Closed

iOS pod install is failing on project init #30690

damienstanton opened this issue Jan 5, 2021 · 27 comments
Labels
DX Issues concerning how the developer experience can be improved. Resolution: Locked This issue was locked by the bot.

Comments

@damienstanton
Copy link

damienstanton commented Jan 5, 2021

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.

  1. run npx react-native init myproject
  2. "Installing Cocoapods dependencies" step fails.
  3. cding into the ios directory and running pod 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 using brew install
  • Reinstalling XCode 12.3

This is a critical problem, as no new RN projects can currently be created in my environment.

@atasmohammadi
Copy link

+1 ( on M1 Mac )

@damienstanton damienstanton changed the title Pod Install is failing on project init iOS pod install is failing on project init Jan 7, 2021
@damienstanton
Copy link
Author

damienstanton commented Jan 8, 2021

Anyone have any ideas for workarounds? Unless I am missing something, this is major; An up to date macOS/XCode environment cannot build a new project on either x86 or M1 arch 😞

@inayath
Copy link

inayath commented Jan 9, 2021

im facing the same issue

@safaiyeh safaiyeh added DX Issues concerning how the developer experience can be improved. and removed Needs: Triage 🔍 labels Jan 9, 2021
@zhaokgithub
Copy link

im facing the same issue

@team55
Copy link

team55 commented Jan 13, 2021

install rosetta 2
set properties for termanal.app for open with rosetta (or clone app and rename to "terminal with Rosetta")
run terminal.app

cd /pathto_ios_folder/
pod install

@damienstanton
Copy link
Author

install rosetta 2
set properties for termanal.app for open with rosetta (or clone app and rename to "terminal with Rosetta")
run terminal.app

cd /pathto_ios_folder/
pod install

I can't verify this because I do not have an M1 machine. If anyone has a working fix for x86 arch, that would be extremely useful.

@kfroemming-cb
Copy link

Running into this exact issue on an x86 MBP 2018. Looking for a workaround

@damienstanton
Copy link
Author

Has anyone managed to find a solution for this?

With it now going on two weeks, I think I have to move on to another cross-platform framework. That's not meant to be hyperbolic, it's just bad timing for me as I can't tell my team that they have to go and find a Mac with an older OS just to get the project init working. I'm sorry to everyone that I cannot be of more help debugging this issue.

@jvrenes
Copy link

jvrenes commented Jan 31, 2021

I found a solution that worked for me:

https://flaviocopes.com/react-native-fix-iphoneos-cannot-be-located/

@damienstanton
Copy link
Author

@jvrenes the link you've shared is the same thing I already posted in the original question, they are saying to run:

sudo xcode-select --switch /Applications/Xcode.app

This did not fix the issue for me on either an x86 or M1 machine.

@hussainahmad
Copy link

@damienstanton any update on this error

@damienstanton
Copy link
Author

@hussainahmad unfortunately no, as I mentioned I ran into a time crunch and had to not use RN for that project for that reason.

I haven't come back to test it in the meantime. I'm getting a new M1 machine this week and will give it a try again and see if I can reproduce the error.

@damienstanton
Copy link
Author

I just tested this on a fresh installed M1 Air, and there were no errors. I guess Flipper-glog was updated sometime? I never had to modify my xcode-select settings or anything else. It worked out of the box.

@lioneldel
Copy link

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

@damienstanton
Copy link
Author

Interestingly I never needed to do anything with opening terminal in rosetta2. I really think it was just the dependency issue (flipper-glog being broken) in my case.

I can no longer reproduce this issue so from my end it can be closed.

@jesper-bylund
Copy link

I'm having the exact same issue today on an M1, your fix @damienstanton was just a re-init?

@inayath
Copy link

inayath commented Apr 1, 2021

im facing the same issue

I was able to fix this issue using below command. Give a try it should work

Try:
git config --global core.autocrlf input
rm -rf nod_modules
npm install
cd ios
pod install

@mafelix
Copy link

mafelix commented Apr 6, 2021

im facing the same issue

I was able to fix this issue using below command. Give a try it should work

Try:
git config --global core.autocrlf inputcd
rm -rf nod_modules
npm install
cd ios
pod install

@inayath

So you're saying line endings have to do with breaking the init process? I find that hard to believe since ppl on M1 machines say it's working out of the box.

@mafelix
Copy link

mafelix commented Apr 6, 2021

sudo xcode-select --switch /Applications/Xcode.app

Run this and the pod install should run smoothly; M1 machine or not.

@damienstanton
Copy link
Author

sudo xcode-select --switch /Applications/Xcode.app

Run this and the pod install should run smoothly; M1 machine or not.

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.

@rughvi
Copy link

rughvi commented Jun 8, 2021

Facing same issue on MAC :
npx react-native init myMobile --version="react-native@0.64.0" --template react-native-template-typescript
Gives the error

✔ 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 ./rabbitmqMobile/ios && pod install".
CocoaPods documentation: https://cocoapods.org/

cd ./myMobile/ios && pod install
will give

Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
[!] CocoaPods could not find compatible versions for pod "Flipper-Folly":
  In Podfile:
    Flipper-Folly (~> 2.5.3)

None of your spec sources contain a spec satisfying the dependency: `Flipper-Folly (~> 2.5.3)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

Anyone got around this issue on MAC?

@petreg
Copy link

petreg commented Jul 30, 2021

I found a solution that worked for me:

https://flaviocopes.com/react-native-fix-iphoneos-cannot-be-located/

That worked for me, thanks.

@FrederickEngelhardt
Copy link

Happened with my machine as well. Had two version of xcode 12.4 and 12.5.1 the issue was that xcode-select was pointing to 12.5.1

@moodyomar
Copy link

same issue here,
I got
[!] Couldn't determine repo type for URL: https://cdn.cocoapods.org/`: execution expired
`
on pod install , nothing above fixed it for me

@mutablestudio
Copy link

I had this issue after upgrading to XCode 13 on an M1 MB Air using RN 0.64.2. I can confirm this as I have another MB Pro that is not M1 and is on XCode 12.5 and the same RN configuration works fine.

The issue went away after upgrading to RN 0.65.1 so I looked at the diff in the glog .podspec and ios-configure-glog.sh script files. In ios-configure-glog.sh changing the CURRENT_ARCH to arm64 fixes the issue:

change

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

to

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

And fyi I'm not using Flipper but was seeing the same issue with pod install failing at glog (0.3.5).

@Versiani-R
Copy link

brew install cocoapods
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

Fixed for me

source: https://stackoverflow.com/questions/68044863/react-native-error-bug-in-ruby-interpreter-failed-to-install-cocoapods-depend

@kalaivanivelusamy
Copy link

i have two versions of XCode and this issue i encountered if i create a new project in Xcode 13 version and then pod init/install on terminal. But if there is a project already exists in Xcode 12.* version then pod install worked fine as usual.

@facebook facebook locked as resolved and limited conversation to collaborators Mar 30, 2022
@react-native-bot react-native-bot added the Resolution: Locked This issue was locked by the bot. label Mar 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
DX Issues concerning how the developer experience can be improved. Resolution: Locked This issue was locked by the bot.
Projects
None yet
Development

No branches or pull requests