Xcode 12,在为 iOS 模拟器构建时,却链接了为 iOS 构建的目标文件,体系结构为 x86_64。

8

有Xcode错误信息:

在构建支持iOS模拟器的FFmpeg/Classes/lib/libavcodec.a(aacencdsp.o)时,却链接到一个为独立环境构建的目标文件,文件“FFmpeg/Classes/lib/libavcodec.a”适用于架构x86_64。

我的库文件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'

你是从SDK还是你的代码中得到这个错误?我在使用Braintree SDK时也遇到了同样的错误。 - DemoDemo
我在使用GoogleSignIn时遇到了同样的问题:“为iOS模拟器构建,但链接到为iOS构建的对象文件,文件'/Volumes/.../Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn' for architecture arm64”,但只有在使用xcodebuild构建时才会出现。 - Rand
我在使用 xxx.a 静态库时遇到了相同的错误。该库的架构是 armv7 i386 x86_64 arm64 - William Hu
我也遇到了同样的错误。你是怎么解决的? - jocoders
4个回答

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 install

清理应用程序构建文件夹。

在Xcode中打开您的项目并按(⇧⌘K)来清除构建,然后运行您的应用程序。

✅ 现在可以从Xcode运行您的应用程序。

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

-1

我认为你会在这里找到答案 https://dev59.com/7lIG5IYBdhLWcg3wnS49#63955114

基本上,你需要从模拟器构建中排除arm64架构。你可以手动完成此操作,或按照链接答案中的详细说明更改你的pod文件。

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


我之前已经阅读过这个问题,但对我没有帮助。 - Xun

-1

我曾经遇到过同样的问题。我使用的是React Native,但是react-native-ffmpeg依赖于mobile-ffmpeg。对我来说解决方案是使用该软件包的LTS版本。


-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' end end

基本上你可能需要做以下事情:

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

1
谢谢你的回复。但是它没有起作用。我的问题是“对于架构x86_64”,而不是arm64。我已经像你之前说的那样做了。 - Xun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接