0

我的 xcframework 包含几个具有不同名称的框架。

在此处输入图像描述

对于 ios,框架名称是 ProjectSwift.framework。对于 tvos,它是 ProjectSwift_tvOS.framework。

在我的 podspec 文件中,我指定了 2 个部署目标,并将 xcframework 指定为 vendored_framework :

Pod::Spec.new do |s|
  s.name             = 'ProjectSwift'
  ...

  s.vendored_frameworks = 'ProjectSwift.xcframework'
  s.ios.deployment_target = '10.2'
  s.tvos.deployment_target = '10.2'
  s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
  s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
  s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
  s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
end

当我尝试 pod lib lint 时,它在 tvos 上失败并出现错误:ld: framework not found ProjectSwift

如果我手动修改我的 tvos 框架的名称(从 ProjectSwift_tvOS 中删除 _tvOS),它可以工作。

ProjectSwift 和 ProjectSwift_tvOS 是我在 Xcode 上的方案的名称,并在创建 xcodebuild 存档时指定

xcodebuild archive \
-scheme ProjectSwift_tvOS \
...

我不确定哪里是修改它的好地方。或者有一种方法可以在 podspec 中指定对于 tvOS,名称不是 ProjectSwift 而是 ProjectSwift_tvOS ?

4

0 回答 0