相关疑难解决方法(0)

Xcode 12,为 iOS 模拟器构建,但链接为 iOS 构建的目标文件,用于架构 arm64

试图在 Xcode 12 (beta 5) 中构建一个大型(并在 Xcode 11 上工作!)项目以准备 iOS 14。代码库以前是 Obj-C,但现在包含 Obj-C 和 Swift,并使用了Obj-C 和/或 Swift 也是如此。

我已经使用 Xcode 12 支持(目前是 1.10.0.beta 2)拉取了 Cocoapods 的新测试版。

Pod 安装成功。当我进行构建时,我在 pod 框架上收到以下错误:

为 iOS 模拟器构建,但链接为 iOS 构建的目标文件,用于架构 arm64

当我lipo -info在框架上运行时,它有:armv7s armv7 i386 x86_64 arm64。

以前,该项目的有效架构设置为:armv7、armv7s 和 arm64。

根据 Apple 的文档,在 Xcode 12 中,该设置将消失。Architectures 设置为 $(ARCHS_STANDARD)。我在排除的架构中没有设置任何内容。

任何人都知道这里可能发生什么?我还没有能够用一个更简单的项目来重现这个。

xcode ios xcode12 xcode12beta5 xcode12beta6

514
推荐指数
32
解决办法
26万
查看次数

在 Apple Silicon (M1) 上运行 CocoaPods

我有一个 Flutter 项目,我试图在 iOS 上运行。它在我的基于 Intel 的 Mac 上正常运行,但在我新的基于 Apple Silicon 的 M1 Mac 上它无法安装 pod。

LoadError - dlsym(0x7f8926035eb0, Init_ffi_c): symbol not found - /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi.rb:6:in `rescue in <top (required)>'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi.rb:3:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ethon-0.12.0/lib/ethon.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/sources_manager.rb:74:in `cdn_url?'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/sources_manager.rb:36:in `create_source_with_url'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/sources_manager.rb:21:in `find_or_create_source_with_url'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:178:in `block in sources'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:177:in `map'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:177:in `sources'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:1073:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:1072:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.0/lib/cocoapods/installer.rb:414:in …
Run Code Online (Sandbox Code Playgroud)

macos ios cocoapods flutter apple-silicon

143
推荐指数
18
解决办法
8万
查看次数

Xcode 错误“为 iOS 模拟器构建,但链接到为 iOS 构建的 dylib .. 来自 Apple Silicon M1 Mac 的架构 arm64”

我有一个应用程序,它可以在旧 Mac 上在物理设备和 iOS 模拟器中使用 Intel 处理器编译并运行良好。

同一个应用程序也可以在带有 M1 处理器的较新 Apple Silicon Mac 和物理 iPhone 设备上编译并运行良好,但是,它拒绝为 iOS 模拟器编译。

如果没有模拟器支持,调试周转时间会变得很长,所以我试图解决这个问题。更不用说 Xcode 预览功能也不起作用,这很烦人。

我在没有进行任何更改(但从 Intel Mac 移至 M1 Mac)的情况下遇到的第一个错误如下所示。

building for iOS Simulator, but linking in dylib built for iOS, file '/Users/andy/workspace/app/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' for architecture arm64

我使用的 Cocoapods 库是 GoogleWebRTC,根据它的文档,应该支持 arm64,所以我很困惑为什么会抛出上述错误。正如我之前所说,它在我认为在 arm64 上运行的真实设备中编译得很好。

根据文档..

这个 pod 包含二进制形式的 WebRTC iOS SDK。它是一个包含 armv7、arm64 和 x86_64 切片的动态库。不支持位码。我们当前提供的 API 仅适用于 Objective C。

我在网上搜索,似乎有两种解决方法可以解决此问题。

  1. 第一个是通过添加arm64Excluded Architectures
  2. 第二个选项是标记Build Active …

xcode cocoa-touch ios apple-silicon

12
推荐指数
2
解决办法
4006
查看次数