简体   繁体   English

Pod 安装在 m1 macbook 上失败

[英]Pod install fails on m1 macbook

Error in running pod install.运行 pod 安装时出错。 I've been trying to run pod install but it keeps failing on all projects, I even created new projects from scratch to eliminate the suspicion that it might be an error in the configuration but it also failed.我一直在尝试运行 pod install 但它在所有项目上一直失败,我什至从头开始创建新项目以消除对它可能是配置错误的怀疑但它也失败了。
I've tried gem cocoapods and brew cocoapods, I've also tried with and without arch -x86_64 but nothing works I've also tried everything in these links:我试过 gem cocoapods 和 brew cocoapods,我也尝试过使用和不使用 arch -x86_64 但没有任何效果我也尝试了这些链接中的所有内容:
React Native pod install failed on Apple Silicon (M1) React Native pod 安装在 Apple Silicon (M1) 上失败

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 `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`
Downloading dependencies
Installing CocoaAsyncSocket (7.6.5)
Installing DoubleConversion (1.1.6)
Installing FBLazyVector (0.67.4)
Installing FBReactNativeSpec (0.67.4)
Installing Flipper (0.99.0)
Installing Flipper-Boost-iOSX (1.76.0.1.11)
Installing Flipper-DoubleConversion (3.1.7)
Installing Flipper-Fmt (7.1.7)
Installing Flipper-Folly (2.6.7)
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... /opt/homebrew/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... /opt/homebrew/bin/gmkdir -p
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-apple-darwin-gcc... /Applications/Developer Tools/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -arch armv7 -isysroot /Applications/Developer Tools/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk
checking whether the C compiler works... no
/Users/samimishal/Library/Caches/CocoaPods/Pods/Release/Flipper-Glog/0.3.6-1dfd6/missing: Unknown `--is-lightweight' option
Try `/Users/samimishal/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/samimishal/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 was having this issue on an M1 mac and did the following:我在 M1 mac 上遇到这个问题并执行了以下操作:

  1. Installed my own version of ruby via homebrew: https://stackoverflow.com/a/66556339/436014 and set the paths accordingly (I had to adjust the path for the pods because I installed ruby 3.1.0 not 3.0.0) This was critical for me, it wasn't working otherwise.通过自制软件安装了我自己的 ruby 版本: https://stackoverflow.com/a/66556339/436014并相应地设置路径(我不得不调整 pod 的路径,因为我安装了 ruby 3.1.0 而不是 3.0.0)这对我来说很重要,否则它不起作用。
  2. In Xcode Preferences > Location , my Command Line Tools setting was empty.在 Xcode Preferences > Location中,我的Command Line Tools设置为空。 I clicked the dropdown and set it accordingly.我单击下拉菜单并进行相应设置。 xcode 首选项
  3. I completely cleaned everything (be careful running these commands).我彻底清理了所有东西(小心运行这些命令)。 In project root: rm -fr node_modules && watchman watch-del-all && yarn && cd ios && rm -rf Pods && pod cache clean --all && pod install && cd..在项目根目录中: rm -fr node_modules && watchman watch-del-all && yarn && cd ios && rm -rf Pods && pod cache clean --all && pod install && cd..
  4. Finally the app was able to build and run on my M1 mac without using Rosetta at all最后,该应用程序能够在我的 M1 mac 上构建和运行,而无需使用 Rosetta

Im not sure but this might help.我不确定,但这可能会有所帮助。 Go to Finder => Applications => Utilities => Terminal => Right Click => Get Info => Check "Open using Rosetta" => Reopen the terminal and try again Go 到 Finder => 应用程序 => 实用程序 => 终端 => 右键单击 => 获取信息 => 选中“使用 Rosetta 打开” => 重新打开终端并重试

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM