【问题标题】:Building React native fail on iOS - using Apple M1 chip在 iOS 上构建 React 本机失败 - 使用 Apple M1 芯片
【发布时间】:2021-04-30 18:40:51
【问题描述】:

我有一个新的 mac,我按照安装说明进行操作。

当我运行命令时:

npx react-native init ProjectName

我收到以下错误

** BUILD FAILED **

以下构建命令失败: CompileC /Users/aghiadmonier/Library/Developer/Xcode/DerivedData/test- bbpkvpircnzzukgpgaaohkixdojw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Flipper.build/Objects-normal/x86_64/ConnectionContextStore.o /Users/aghiadmonier/Desktop/React/test/ios/Pods/Flipper/xplat/Flipper/ ConnectionContextStore.cpp 正常 x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler (1 次失败)

我使用的是 Xcode 12.5

【问题讨论】:

    标签: ios react-native apple-m1


    【解决方案1】:

    xCode 12.5 是这里的问题。它似乎破坏了 react-native 构建。这里提到了解决方案-https://github.com/facebook/react-native/issues/31179#issuecomment-830184757

    看起来你正在使用 react-native 0.64

    1. 更新 podfile 以使用
    use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3')
    
    1. 更新package.json 以使用
    "react-native": "facebook/react-native#cf8a364767df830d7255339741350bb53ab1a68a"
    
    1. 运行npm install(或yarn
    2. 在 ios 文件夹中运行 pod install,清理并重建应用程序

    【讨论】:

    • 使用use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3') 会出现以下错误:[!] Invalid `Podfile` file: unknown keywords: "Flipper", "Flipper-Folly". # from /Users/.../ios/Podfile:24 # ------------------------------------------- # # you should disable the next line. > use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3') # # ------------------------------------------- @LonelyCpp 您还有其他建议吗?
    【解决方案2】:

    仅供参考,我正在使用 Mac M1 船,

    当我执行 Flipper 命令时出现此错误:

    [!] Invalid `Podfile` file: unknown keywords: "Flipper", "Flipper-Folly".
    
     #  from /Users/aghiadmonier/Public/Projects/Awsom/ios/Podfile:24
     #  -------------------------------------------
    

    你应该禁用下一行。

    use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3')
    

    【讨论】:

    • 你能解决这个问题吗?我在 M1 Mac 上运行,我仍然遇到 "react-native": "0.64.1" 的这个问题
    • 更改代码 use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3')' into this use_flipper!({'Flipper' => '0.75.1',​​ 'Flipper-Folly' => '2.5.3'})` 它适用于我的 m1 mac .
    【解决方案3】:

    当您尝试在 M1(Apple Silicon Chip)中使用以下命令创建项目时:

    npx react-native init ProjectName
    

    尝试使用以下步骤构建:

    1. 打开终端并安装rosetta
    2. 在终端中输入“softwareupdate — install-rosetta”命令。
    3. 安装完成后,转到应用程序。
    4. 查找终端应用
    5. 右键单击并创建一个复制终端 Rosetta checkbox in terminal
    6. 现在右键单击重复的终端并单击“获取信息
    7. 您将看到带有“Open with Rosetta”选项的复选框。启用它。
    8. 就是这样。重命名您的 Rosetta 终端,以便您轻松识别它。
    9. 打开您的 Rosetta 终端并运行命令 npx react-native init ProjectName
    10. 项目初始化完成后输入npx react-native start to start metro。
    11. 现在输入命令npx react-native run-android 以运行Android
    12. 键入命令npx react-native run-ios 以运行iOS。
    13. 项目初始化完成后,您也可以在 VS Code 中运行 startrun 命令。

    【讨论】:

    • 由于目前建议 Xcode 使用相同的方法,我不明白您为什么会投反对票。通过使用 Rosetta 打开应用程序,我们可以使用 Xcode 运行我们的应用程序。然后我们无法在终端中启动我们的应用程序,原因与我们在 Xcode 上无法启动的原因相同(一些依赖项尚未与 M1 兼容)。使用 Rosetta 运行终端修复了它。
    【解决方案4】:

    只需像这样更新您的 Podfile

     use_flipper!({ 'Flipper' => '0.91.1', 'Flipper-Folly' => '~> 2.6', 'Flipper-RSocket' => '~> 1.4' })
    
      post_install do |installer|
        installer.pods_project.targets.each do |target|
          target.build_configurations.each do |config|
            config.build_settings["ONLY_ACTIVE_ARCH"] = "NO"
          end
        end
        flipper_post_install(installer)
        react_native_post_install(installer)
      end
    

    运行后pod install

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2021-10-06
      • 2022-11-29
      • 2021-12-11
      • 2022-08-16
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多