尝试安装本机反应时出错,运行 pod install 时无法正确构建
Posted
技术标签:
【中文标题】尝试安装本机反应时出错,运行 pod install 时无法正确构建【英文标题】:Error trying to install react native, not building correctly when running pod install 【发布时间】:2020-03-06 01:21:45 【问题描述】:我正在尝试学习 react native,但在尝试安装依赖项时遇到了问题。我已经安装了 CocoaPods 并通过文档执行了所有步骤。我不确定为什么会收到此错误。运行 pod install
和 pod install --repo-update
时,我得到以下输出:
tyler@Tylers-MacBook-Pro ios % pod install --repo-update
Updating local specs repositories
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 DoubleConversion (1.1.6)
Installing FBLazyVector (0.61.5)
Installing FBReactNativeSpec (0.61.5)
Installing Folly (2018.10.22.00)
Installing RCTRequired (0.61.5)
Installing RCTTypeSafety (0.61.5)
Installing React (0.61.5)
Installing React-Core (0.61.5)
Installing React-CoreModules (0.61.5)
Installing React-RCTActionSheet (0.61.5)
Installing React-RCTAnimation (0.61.5)
Installing React-RCTBlob (0.61.5)
Installing React-RCTImage (0.61.5)
Installing React-RCTLinking (0.61.5)
Installing React-RCTNetwork (0.61.5)
Installing React-RCTSettings (0.61.5)
Installing React-RCTText (0.61.5)
Installing React-RCTVibration (0.61.5)
Installing React-cxxreact (0.61.5)
Installing React-jsi (0.61.5)
Installing React-jsiexecutor (0.61.5)
Installing React-jsinspector (0.61.5)
Installing ReactCommon (0.61.5)
Installing Yoga (1.14.0)
Installing boost-for-react-native (1.63.0)
Installing glog (0.3.5)
[!] /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/bin/install -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... ./install-sh -c -d
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... /Library/Developer/CommandLineTools/usr/bin/cc -arch armv7 -isysroot
checking whether the C compiler works... no
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: unable to lookup item 'Path' in SDK 'iphoneos'
/Users/tyler/Library/Caches/CocoaPods/Pods/External/glog/2263bd123499e5b93b5efe24871be317-1f3da/missing: Unknown `--is-lightweight' option
Try `/Users/tyler/Library/Caches/CocoaPods/Pods/External/glog/2263bd123499e5b93b5efe24871be317-1f3da/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
configure: error: in `/Users/tyler/Library/Caches/CocoaPods/Pods/External/glog/2263bd123499e5b93b5efe24871be317-1f3da':
configure: error: C compiler cannot create executables
See `config.log' for more details
我试过用谷歌搜索这个问题,但没有运气。非常感谢任何帮助!
【问题讨论】:
【参考方案1】:经过一番谷歌搜索,我找到了解决问题的方法。
https://github.com/facebook/react-native/issues/25561
运行sudo xcode-select --switch /Applications/Xcode.app
然后重启你的机器。将 CD 放入产品的 iOS 目录并运行 pod install
。它应该正确构建!
【讨论】:
【参考方案2】:实际上,我在使用 macOS Catalina 时遇到了这个错误,它安装在不受支持的 Apple 计算机上(Mac mini 5.1 - 2011 年中)
如果你偶然发现了这篇文章,那很可能意味着你遇到了这个错误:
找不到SDK“iphoneos”
在处理 XCode 项目时尝试从 Mac 终端运行 pod install
或执行类似的命令行任务时。
这是一个典型的场景,当你一起更新很多东西时——比如 XCode 和 CocoaPods。
幸运的是,修复非常简单:打开一个新的终端窗口并输入以下命令:
sudo xcode-select --print-path
如果安装了 XCode,您应该会看到 错误 安装路径,例如 /Library/Developer/
或类似的东西:很可能您的 XCode 安装位于某个地方其他 - 例如在/Applications/
文件夹中。如果是这样,您可以通过键入以下命令来解决您的问题:
sudo xcode-select --switch /Applications/Xcode.app
【讨论】:
【参考方案3】:第 1 步:确保在 XCode 中选择了命令行工具。
XCode > Preferences > Locations > Command Line Tools > Select the one that you want to use
第 2 步:在终端中执行以下命令 sudo xcode-select --switch /Applications/Xcode.app
这里的技巧是,如果您的 XCode 应用程序命名不同,例如 XCode 13.2.1
,即使您这样指定它 sudo xcode-select --switch /Applications/Xcode\ 13.2.1.app
它也不会工作,我认为这是因为名称中的空格。只需将您的应用程序本身重命名为XCode13.2.1
(基本上删除名称中的任何空格)然后执行sudo xcode-select --switch /Applications/Xcode13.2.1.app
第三步:pod install
【讨论】:
以上是关于尝试安装本机反应时出错,运行 pod install 时无法正确构建的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 pod install 错误 glog 太旧或缺少在 Windows 10 中反应原生 ios