为 iOS 模拟器构建,但链接到为 iOS 构建的目标文件

问题描述 投票:0回答:5

在我将 Google Places 集成到我的应用程序中之前,我在模拟器上运行它没有问题,但现在我只能在物理设备上运行我的应用程序。我尝试排除arm64,就像许多答案中建议的那样,但没有运气。完整错误如下:

为 iOS 模拟器构建,但链接到为 iOS 构建的目标文件,文件“/Users/davitmuradyan/Documents/DigiSoft/trip-share-ios/TripShare/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/GoogleMapsBase”用于架构ARM64

ios swift cocoapods runtime-error google-places-api
5个回答
44
投票

暂时就这样吧

  1. 在您的应用程序文件夹中找到 Xcode。
  2. 选择应用程序,然后按 Command-I(或右键单击/使用“文件”菜单并选择“获取信息”。)。这将打开一个信息窗口,其中包含有关该应用程序的详细信息。
  3. 在信息窗口中,查找标有“使用 Rosetta 打开”的复选框。选中该框。
  4. 关闭信息窗口。
  5. 如果您已经在运行该应用程序,请退出并重新启动。

5
投票

解决方案1:进入构建设置>排除的架构,添加arm64进行调试和发布

解决方案 2:转到 Xcode 首选项 > 位置,然后删除派生数据文件并清理项目并运行

解决方案3:删除该框架

方案四:使用package安装代替pod安装


2
投票
在模拟器中运行项目需要

x86_64架构。

在真实设备上运行项目需要

arm64架构。

您可以使用以下命令来检查Google Place SDK是否包含x86_64:

lipo-info /Users/XXXXXXXXX/XXXXXXXXXXXX/GooglePlace.framework/GooglePlace

拖放 SDK 文件并检查。

如果您将 Google place SDK 添加为静态。请通过Pod文件使用。


0
投票

对于 M1 芯片,“使用 Rosetta 打开”可能有效。

但是更新到 Sonoma 14.0(XCode 为 15.0)后,在“获取信息”窗口中找不到“使用 Rosetta 打开”。

或者,尝试:
Xcode -> 产品(在菜单栏中)-> 目标 -> 目标架构 -> 选中“显示 Rosetta 目标”

之后,构建列表中的设备应该能够以“(Rosetta)”结尾,例如iPhone 15(罗塞塔)

该项目应该能够在这些 Rosetta 模拟器上运行。


-2
投票

小心排除架构 - 有时它会破坏应用程序(最好的例子 RNBackgroundFetch - 不适用于排除 arm64)。

使用 Rosetta 启动运行完美(应用程序 -> RClick XCode -> 获取信息 -> 检查“使用 Rosetta”

© www.soinside.com 2019 - 2024. All rights reserved.