Xcode 12,针对iOS模拟器而构建,但是链接到针对iOS x86_64体系结构而构建的目标文件中

时间:2020-09-22 04:29:53

标签: ios xcode12

有Xcode错误信息:

在FFmpeg / Classes / lib / libavcodec.a(aacencdsp.o)中,为iOS构建 模拟器,但链接到为自由站立而建立的目标文件中 架构x86_64的“ FFmpeg / Classes / lib / libavcodec.a”。

我的库文件libavcodec.a支持x86_64,i386,arm64,armv7 arm7等。

我在Podfile中设置了以下代码,然后在pod install中设置了代码,但没有用。

config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
config.build_settings['VALID_ARCHS[sdk=iphonesimulator*]'] = 'x86_64'

4 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我在 Xcode 12 版中尝试了这个

在 package.json 中将 react-native-ffmpeg 版本更改为 0.4.4 版

即“react-native-ffmpeg”:“0.4.4”

更新库

从你的项目根目录“npm install”

清理 react-native-ffmpeg pod 缓存

cd ios

pod cache clean react-native-ffmpeg --all

更新 [ios] 文件夹中的 pod 文件。

用下面的代码替换包含 react-native-ffmpeg 的行

pod 'react-native-ffmpeg/https-lts', :path => '../node_modules/react-native-ffmpeg'

安装 Pod

cd ios

pod 安装

清理您的应用构建文件夹。

在 Xcode 中打开你的项目,然后按 (⇧⌘K) 来清理你的构建。 或 -> 在 Xcode 中转到(产品 => 清理构建文件夹)。

✅ 现在从 Xcode 运行您的应用。

参考:https://github.com/tanersener/react-native-ffmpeg/issues/196#issuecomment-700935317 Salehjarad 评论

答案 1 :(得分:-1)

将其放在Podfile的末尾:

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

config.build_settings ['VALID_ARCHS [sdk = iphonesimulator *]'] ='x86_64' 结束 结束

基本上,您可能需要做:

  1. 主要项目目标
  2. Pod项目目标

答案 2 :(得分:-1)

我想您会在https://stackoverflow.com/a/63955114/2864316

中找到答案

基本上,您需要从模拟器构建中排除arm64体系结构。您可以手动执行此操作,也可以按照链接的答案中的说明更改Pod文件。

至少那个答案解决了我的问题?

答案 3 :(得分:-1)

我有同样的问题。我使用react-native,但react-native-ffmpeg取决于mobile-ffmpeg。对我来说,解决方案是使用LTS版本的软件包。