对于 React-Native iOS XCode 版本 12.5

问题描述

看到这个最近开始发生的问题对我来说很新鲜。以前,通过运行此命令 react-native run-ios,我的应用可以在 iOS 模拟器 上正常运行。现在我做了很多研究,并通过 XCode 运行我的应用程序。但不知何故,当应用通过 XCode 运行时,metro bundler 没有链接

我尝试通过 react-native run-ios 运行该应用程序,但每次我都看到此错误在这里复制粘贴每个错误太大了,但这里有一些:

Undefined symbols for architecture x86_64:
  "Swift._ArrayBuffer._copyContents(initializing: Swift.UnsafeMutableBufferPointer<A>) -> (Swift.IndexingIterator<Swift._ArrayBuffer<A>>,Swift.Int)",referenced from:
      generic specialization <serialized,Swift._ArrayBuffer<Swift.Int8>> of Swift._copyCollectionToContiguousArray<A where A: Swift.Collection>(A) -> Swift.ContiguousArray<A.Element> in libmixpanel-swift.a(AutomaticProperties.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command Failed with exit code 1 (use -v to see invocation)


** BUILD Failed **


The following build commands Failed:
        Ld /Users/careerlabsdev/Library/Developer/Xcode/DerivedData/CareerLabs_Elev8-gxcfanteiuxazegkgwkjkrjxbdmw/Build/Products/Debug-iphonesimulator/CareerLabs.app/CareerLabs normal
(1 failure)

为了让它发挥作用,我做了很多事情。我在这里获得的唯一成功是,while running the command react-native run-ios,it opens up the metro bundler server。之后它失败并给出 1000 行错误。我选择了包含奶油部分的错误。从错误中挑选的一些关键词:

我所做的如下:

  1. 删除node_modulesPods。从 XCode 清理构建。运行npm install,然后运行cd ios && pod install,然后运行命令react-native run-ios
  2. 删除PodsPodfile.lock。做了 pod install 然后在根 react-native run-ios
  3. 执行以下操作:
rm -rf ~/Library/Caches/CocoaPods
rm -rf Pods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod deintegrate
pod setup
pod install
cd ..
react-native run-ios
  1. 重启系统,再次运行命令react-native run-ios
  2. 在 XCode 的排除架构添加arm64。请注意,这使我能够在 XCodebuild and run成功地将该应用程序react-native-gesture-handler。但它不会附加到 Metro bundler 服务器。看起来它只运行发布模式
  3. 将我的软件包 platform :ios,'10.0' use_flipper!({'Flipper' => '0.81.0'}) post_install do |installer| flipper_post_install(installer) installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' end end end 更新到最新的 1.10.3,看看是否能解决我的问题。但是运气不好:(

我的 Podfile 看起来像这样:

use_flipper!()

我现在别无选择,正在等待一些见解。看到一个从未造成问题的错误确实令人沮丧。我正在使用 Apple M1 芯片 Macbook。将不胜感激任何形式的帮助。

更新 V1.0

  • 我曾尝试注释掉 /ios/Podfile 中的 Pods,然后重做相同的事情,例如删除 Podfile.lockpod update && pod install && cd.. && npm run ios。运行此命令,Facebook。遇到多个问题。天知道 Apple M1 上的 XCode 和 React Native 到底出了什么问题。

更新 V2.0

我发现了一些重要的地方,开发人员抱怨同样的问题。 XCode 已在我未通知的情况下强制将我的版本更新到 12.5。现在 XCode 给 RN Older 项目带来了问题。以下是相同的支持链接

我希望这可以为像我一样困惑的开发人员提供一些见解。请看一下,看起来 cardodb_id,CONCELHO,LAT,LONG,DATA,INC 225,Abrantes,39.466667,-8.2,2020-03-25,1000 正在修复它,但不知道什么时候。必须密切关注它:/

解决方法

为了让我的应用程序像以前一样再次运行,我所做的一件事是将 XCode 版本降级到以前的稳定版本,即版本 12.4。后来我知道了这个问题,因为,XCode force 更新了我的版本,它开始在我现有的项目中表现得很奇怪。所以我看到的唯一可行的选择是将版本降级到以前的版本,一切都像以前一样

请注意:此问题主要存在于 Apple M1 以及 XCode v12.5BigSur OS。因此,请继续将这些事情牢记在心。

为此,我必须做这些事情:

  • 从 Mac 上完全卸载 XCode。为了有效地做到这一点,考虑到 XCode 在您的 Mac 上缓存了很多东西,请使用 Mac App Cleaner。如果您在没有使用链接的情况下刚刚删除了 XCode,请使用此 Completely remove Xcode from Mac
  • 从此资源 XCode Releases 安装 XCode请注意:这是一个合法的来源,可将您直接带到Apple's download pages,没有任何不可靠的东西。因此,您可以继续下载 XCode以前的稳定版本您的应用运行良好
  • 请注意:App Store 安装 XCode 将再次安装有错误 v12.5 的最新版本的 XCode。所以请不要从 Apple Store 下载和安装相同的内容。仅使用上述来源以获得最佳效果。
  • 下载文件后安装它。请务必遵循此Setting up development environment React Native,以免发生任何意外。
  • 再次运行应用。

它对你有用,因为它对我有用,现在我正在继续我的项目工作,没有任何麻烦。干杯!

,

我猜所有第三方 Pod 都需要更新他们的 RN Pod 规格以使用 XCFrameworks。这就是我刚刚做的,它似乎工作正常。

这意味着,作为 RN 包用户,您将需要等待包作者更新他们的 podspecs 以使用 XCFrameworks 或添加排除“arm64”架构的构建配置(但随后不适用于 M1 mac)。

或者,您可以访问 node_modules/<package>/thrid-party.podspec 并自行更新。但这意味着您也需要自己构建 XCFrameworks。所以……