我的 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 ?