在我将 Google Places 集成到我的应用程序中之前,我在模拟器上运行它没有问题,但现在我只能在物理设备上运行我的应用程序。我尝试排除arm64,就像许多答案中建议的那样,但没有运气。完整错误如下:
为 iOS 模拟器构建,但链接到为 iOS 构建的目标文件,文件“/Users/davitmuradyan/Documents/DigiSoft/trip-share-ios/TripShare/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/GoogleMapsBase”用于架构ARM64
解决方案1:进入构建设置>排除的架构,添加arm64进行调试和发布
解决方案 2:转到 Xcode 首选项 > 位置,然后删除派生数据文件并清理项目并运行
解决方案3:删除该框架
方案四:使用package安装代替pod安装
x86_64架构。
在真实设备上运行项目需要arm64架构。
您可以使用以下命令来检查Google Place SDK是否包含x86_64:
lipo-info /Users/XXXXXXXXX/XXXXXXXXXXXX/GooglePlace.framework/GooglePlace
拖放 SDK 文件并检查。
如果您将 Google place SDK 添加为静态。请通过Pod文件使用。
对于 M1 芯片,“使用 Rosetta 打开”可能有效。
但是更新到 Sonoma 14.0(XCode 为 15.0)后,在“获取信息”窗口中找不到“使用 Rosetta 打开”。
或者,尝试:
Xcode -> 产品(在菜单栏中)-> 目标 -> 目标架构 -> 选中“显示 Rosetta 目标”
之后,构建列表中的设备应该能够以“(Rosetta)”结尾,例如iPhone 15(罗塞塔)
该项目应该能够在这些 Rosetta 模拟器上运行。
小心排除架构 - 有时它会破坏应用程序(最好的例子 RNBackgroundFetch - 不适用于排除 arm64)。
使用 Rosetta 启动运行完美(应用程序 -> RClick XCode -> 获取信息 -> 检查“使用 Rosetta”