【问题标题】:Excluding arm64 architecture leads to 'No such module: AWSAppSync'排除 arm64 架构会导致“没有这样的模块:AWSAppSync”
【发布时间】:2021-06-26 02:26:23
【问题描述】:

我目前正在开发一个 Swift 5.0 项目 (Xcode 12)。我现在用的是M!计算机。对于我的项目,我需要几个 pod 依赖项(AWS、Google 等)才能使我的项目正常运行。当我在 IOS 设备上运行我的代码时,我没有遇到任何问题。但是当我尝试在模拟器上运行项目时,我遇到了涉及 pod 链接的不同错误。

Google 放置自动完成常见问题解答说,如果我在使用 Xcode 12 构建 iOS 模拟器时遇到问题,我应该通过更改项目构建设置来排除 iOS 模拟器的 arm64 架构。但在这样做时,我收到“未找到此类模块:AWSAppSync”的警告。

为了解决这个问题,我在架构中添加了“x86_64”和“x86”,将“仅构建活动架构”设置为“是”,并确保我的 pod 的构建设置具有相同的“仅构建活动架构” " 值,这不会导致任何变化。我也试过 pod update、install、install --repo-update、清理 build 文件夹、删除派生数据、重启 Xcode。

当我将两组构建设置(pod 和项目)的“仅构建活动架构”设置为“否”时,我从不同的非 AWS pod 收到另一个错误: “找不到目标‘x86_64-apple-ios-simulator’的模块‘MultiSlider’;找到:arm64,arm64-apple-ios-simulator”

删除对多滑块的任何代码引用然后让应用程序完全构建,但应用程序在模拟器上启动之前崩溃并出现“无法识别的选择器发送到实例 0x60000067fd90”的错误。

请注意,通过任何这些尝试修复,应用程序将继续按预期在实际的 iOS 设备上运行。我对豆荚很陌生,非常感谢任何人可以提供的任何帮助或见解!提前谢谢你。

【问题讨论】:

    标签: ios swift xcode aws-appsync arm64


    【解决方案1】:

    在为模拟器构建时,我必须为每个 pod 排除 arm64 架构。有关更多详细信息,请参阅https://narlei.com/development/apple-m1-xcode-error-when-build-in-simulator/,但似乎有必要从项目中排除 arm64 并在 Podfile 中为每个 pod 的目标排除它。

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
          config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
          config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
         end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多