为 iOS 模拟器构建,但在为 iOS 构建的目标文件中链接,用于架构 arm64
Posted
技术标签:
【中文标题】为 iOS 模拟器构建,但在为 iOS 构建的目标文件中链接,用于架构 arm64【英文标题】:building for iOS Simulator, but linking in object file built for iOS, for architecture arm64 【发布时间】:2020-10-01 05:57:00 【问题描述】:收到此错误。
Realm/core/librealmcore-ios.a(array_binary.o),
Swift iOS 14 xcode 12.0.1
我尝试过的:
更新到最新领域 不包括 arm64 架构似乎没有任何效果 似乎领域也有问题:https://realm.io/docs/swift/latest/#cocoapods
“Realm 5.x 和 Xcode 12 的多种组合可能不支持 Arm64 模拟器架构。如果您在使用最新版本的 Realm 时遇到与架构相关的构建错误,请尝试以下解决方法。”
【问题讨论】:
您使用的是哪个版本的 cocoapods? 不确定问题中的链接是做什么用的,但我刚刚创建了一个新项目,设置与您相同,使用 Cocoapods 安装 RealmSwift,它已启动并运行。你能包含你的 podfile 吗? 【参考方案1】:使用
pod 'RealmSwift', '~> 10.5.0'
他们已经添加了对 xcframework 的支持。
【讨论】:
【参考方案2】:这不是一个正确的解决方法,但对我的项目有用的是:
遵循以下提供的建议:https://realm.io/docs/swift/latest/#cocoapods 安装 cocoapods 1.10.0.rc1 在 cocoapods 项目中将BuildActiveArchitectureOnly
设置为 Yes
现在,当您为您的设备构建应用程序或存档时,请确保将其设置回No
,或者为此使用不同的配置(例如:我将Debug
设置为Yes
, Release
到 No
)。
【讨论】:
感谢 Sander,这看起来是一个不错的尝试,当我试一试时会告诉你【参考方案3】:我做的是
在构建设置中将 BuildActiveArchitectureOnly 设置为 Yes。
和
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
end
end
和
已将我的 Realm 更新到最新版本。
【讨论】:
以上是关于为 iOS 模拟器构建,但在为 iOS 构建的目标文件中链接,用于架构 arm64的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 12 beta 4:为 iOS 模拟器构建,但在为独立构建的目标文件中链接
Siphon 为 iOS 模拟器构建,但在设备构建时出现链接器错误
Mac Catalyst 的问题 - 链接为 iOS 模拟器构建的目标文件