在 React Native 项目中安装 Cocoapods 时出错

时间:2021-04-16 18:38:25

标签: xcode react-native cocoapods

我试图将 CocoaPods 手动安装到我的 React Native 项目中

  1. 修复 XCode 中的命令行工具路径。

  2. 在项目目录中手动创建的 ios 文件夹。

  3. 手动安装 CocoaPods,但这是我得到的错误:

    [!] /bin/bash -c 
    set -e
    #!/bin/bash
    
    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/"
    
    /bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
    

1 个答案:

答案 0 :(得分:0)

在 Sublime Text 编辑器中打开文件 node_modules/react-native/scripts/ios-configure-glog.sh,使用 View > Line Endings > Mac OS 9 更改行尾,保存并尝试 pod install,它可以工作。注意:当您更改为 Unix 行尾时它不起作用,因此必须使用 sublime text 中的 Mac OS 9 或其他工具中的某些等效 mac 行尾。

如果您需要更好的解决方案或有关该问题的更多信息,请参阅https://github.com/facebook/react-native/issues/28217