使用 Xcode 15 beta 编译 Apple Vison Pro SDK 时出现“找不到模块”错误

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

使用 Xcode 15 beta 4/5/6 和

Cocoapods
作为 xcode 工作区,当我使用
Apple Vision Pro SDK
(不是为 iPad 设计的,但成功了)编译项目时,出现一些错误,第一个一个是这样的:

Module 'xxx' not found

我想知道是否有人遇到过这个,我被告知有可能

cocoapods
尚未支持
Apple Vision Pro SDK
,但尚未得到证实。

ios xcode cocoapods vision-pro
1个回答
0
投票

我开发了一种将 VisionOS 支持集成到 iOS 项目中的方法,并亲自测试过。这种方法有助于克服两个关键限制:

  1. Pod 兼容性有限:由于代码不兼容或过时的 podspec,许多 CocoaPod 尚未与 VisionOS 兼容。
  2. Podfiles 中的目标平台限制:CocoaPods 目前不支持每个目标多个平台,需要为 VisionOS 复制 iOS 目标。

集成步骤:

1.添加 VisionOS 作为手动目标

在 Xcode 项目中手动添加 VisionOS 作为目标。

2.修改VisionOS的Podfile

platform :ios
保留在 Podfile 中,但添加
post_install
脚本以为所有 Pod 启用 VisionOS:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # Activate VisionOS support for all Pods
      config.build_settings['SUPPORTED_PLATFORMS'] = 'iphoneos iphonesimulator xros xrsimulator' # Include VisionOS (xros) and its simulator (xrsimulator)
      config.build_settings['TARGETED_DEVICE_FAMILY'] = '1,2,7' # Add the 7 device family
    end
  end
end

3.构建并识别问题

尝试构建您的项目并记下任何失败的 Pod。对于失败的 Pod,您可能需要:

  • 从源中检查(未发布的)更新。
  • 修改代码以兼容VisionOS。通常,这涉及:
    • 排除不兼容的代码(
      #if !os(visionOS)
      #if os(iOS)
      )。
    • 添加可用性检查 (
      if #available(iOS 10, visionOS 1, *)
      )。
    • 替换
      UIScreen
      用法,例如使用
      1
      代替
      UIScreen.main.scale
      ,或使用
      UIApplication.shared.connectedScenes.compactMap { ($0 as? UIWindowScene)?.keyWindow }.last?.bounds.size
      代替
      UIScreen.main.bounds.size

4.回馈并使用修改后的叉子

将更改发送回原始项目,同时指向 Podfile 中修改后的分支:

pod 'Toast-Swift', git: 'https://github.com/codelathe/Toast-Swift.git', branch: 'initial_visionOS_support' # VisionOS-compatible fork of Toast-Swift

结论

这些步骤应该使您能够将 VisionOS 支持集成到您的项目中。有关 CocoaPods VisionOS 支持的更多详细信息和正在进行的讨论,您可以参考 CocoaPods GitHub 问题

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