我想要建立我的Xcode项目(React Native和快速)为模拟器和在一个真实的设备。
模拟器工作得很好。今天我试着为我的设备构建它,我在Xcode栏中选择了我的设备,并添加了要发布的方案(我必须这样做,因为我使用的是Reaction Native,否则捆绑包不会打包)
然后在构建过程中发生错误(在本例中为依赖RNPurchase,但这是完全随机的)。有时是世博会--保持清醒或Facebook)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_RCPurchases", referenced from:
objc-class-ref in RNPurchases.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
在我的方案中,即使切换回构建配置Debug
也不再有效。
我已经试过几件事了:
- 清除Xcode版本
- 删除Pod文件夹
- 删除Pod缓存
- 删除Xcode/DerivedData
- 重新启动
毫无办法。
这个问题对我来说是很新的,在过去的两个月里已经发生了两次。不知何故,我再次运行了模拟器的构建,但从未运行过设备。半年前我没有遇到这样的问题……
我的设置
- Xcode 12.4
- MacBook Pro(Big Sur 11.2.3)
- App-Target的构建设置:仅构建活动架构:是调试,否发布)
- Pod-Target的构建设置:仅构建活动架构:是调试,否发布)
- Podfile:
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native-unimodules/cocoapods.rb' # expo uni modules
use_frameworks!
install! 'cocoapods', :deterministic_uuids => false, :warn_for_unused_master_specs_repo => false
target 'TrainUrTeam' do
platform :ios, '12.0'
# ... pods xyz
use_unimodules!
config = use_native_modules!
use_react_native!(:path => config["reactNativePath"])
end
post_install do |installer| # src: https://stackoverflow.com/a/64139830/6003494
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings["ONLY_ACTIVE_ARCH"] = "YES"
end
end
end
4条答案
按热度按时间g2ieeal71#
在谷歌搜索了两周后,我终于找到了根据Post的工作解决方案,并将其添加到
Podfile
中:yhxst69z2#
如果
use_frameworks! :linkage => :static
不是您的选项,您可以尝试使用:wfveoks03#
我收到了这些错误,然后重新启动了我的MacBook,清理后,然后构建,它们就消失了。魔法。
gr8qqesn4#
进入Xcode项目->构建设置->架构->排除架构->(Arm64)设置
尝试构建并运行