我正在try 在MacBook Pro上为iOS模拟器构建一个带有M1架构的React原生项目.

该项目很好地建立在英特尔体系 struct 之上.

它还构建在设备上,并在M1上很好地存档.但不是在模拟器上.

切换到M1芯片组时,我犯了一个classic 错误.

在/project folder/ios/Pods/OpenSSL Universal/ios/lib/libcrypto中.a(cryptlib.o),为iOS模拟器构建,但在为iOS构建的对象文件中链接,文件"/project folder/iOS/Pods/OpenSSL Universal/iOS/lib/libcrypto.用于arm64的"a"架构

我将arm64添加到排除的体系 struct 中.

我还添加了下面的代码片段,但没有它,它的react 也一样.

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

现在我有:

/项目文件夹/ios/ProjectName.xcodeproj链接库的libPods项目名.a'缺少此目标所需的一个或多个体系 struct :x86_64.

我试图将x86_64添加到项目的体系 struct 列表中,但没有结果.

我在Xcode IDE上构建.此错误消息适用于我try 的所有iPhone:8、11、12和我try 的所有目标:iOS 9、10和13.

推荐答案

我也有同样的问题,最后我解决了.这些错误有两个主要原因:

  1. arm64架构支持和;许多流行的第三方库(如Firebase、AFNetworking等)尚未提供与Xcode 12兼容的版本.Xcode 11曾用于自动将arm64模拟器的building for the simulator转换为x86_64模拟器的building for x86_64,但现在arm64是一种有效的模拟器架构(它是Apple Silicon架构),这种转换不再发生.

  2. 由于有效的架构构建设置已从Xcode 12中删除,在Xcode 12中打开的项目文件将在用户定义中自动生成VALID_ARCHS宏,该宏将使构建失败.

我遵循这篇帖子的所有步骤:https://medium.com/@khushwanttanwar/xcode-12-compilation-errors-while-running-with-ios-14-simulators-5731c91326e9

最后一步是通过在项目文件夹中运行以下命令来更新所有POD:

pod deintegrate
pod update

然后,我从主项目和Pod项目中排除了模拟器架构的arm64.

Xcode build settings

清理项目(++k)然后运行.

React-native相关问答推荐

如何渲染一个 svg 以在不同的窗口大小下动态地看起来相同?

构建 iOS Expo 应用时出现 React-Native xcodebuild 错误 65

React Native 白色黑屏问题

未找到 xcode 'boost/config/user.hpp' 文件

使用 react-native 设置 Select 器的高度

xcrun:错误:SDK "iphoneos" cannot be located

ReactNative FlatList 一次渲染所有元素?

从堆栈导航器中删除屏幕

如何解决react-navigation 问题:Animated: `useNativeDriver` is not supported because the native animated module is missing.?

如何将 View 定位在 ScrollView 的底部?

在 Docker 中使用 Fastlane 构建 iOS 应用

使用离线包在 iOS 设备上运行 react-native 应用程序

是否可以将 Image.getSize 与静态图像文件一起使用?

axios 的网络错误和react-native

等待模块失效的超时

无法解析模块react-navigation

通过 IOS 中的 Linking.openURL React Native Open 设置

将 setState 与 promise 一起使用后出现错误

React Native 多行TextInput,文本居中

StackNavigator中如何改变动画的方向?