xcode 我应该如何将vendored_framework引入到我的项目中?

31moq8wy  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(349)

我知道如何在PodSpec中打包我的代码。我正在how to publish my xcframework using cocoapods上使用这篇文章

Pod::Spec.new do |spec|
  spec.name               = "StarWars"
  spec.version            = "1.0.0"
  spec.summary            = "Star Wars Library for iOS apps"
  spec.description        = "..."
  spec.homepage           = "..."
  spec.documentation_url  = "..."
  spec.license            = { :type => "MIT" }
  spec.author             = { "Star Wars" => "..." }
  spec.source             = { :git => 'your repo here', :tag => "#{spec.version}" }
  spec.swift_version      = "5.3"

  # Supported deployment targets
  spec.ios.deployment_target  = "10.0"

  # Published binaries
  vendored_frameworks = "StarWarsKit.xcframework"
end

但是Podfile docs,没有提到如何在安装源代码和xcframework之间做出决定。
就像如果我做了:

pod 'StarWarKit', '~> 3.0'

上面那行如何决定:

  • 安装预构建的框架/二进制文件本身
  • 下载源代码,编译成框架,然后安装。

那它是怎么运作的呢?
这个other question,似乎提出了同样的问题,并提到你应该使用两个PodSpecs。但它没有一个公认的答案,我想知道是否:

  • CocoaPods的问题依然存在
  • 新版本的CocoaPods有办法解决这个问题。
  • 也许我用的博客文章是错误的
  • 虽然可以正常工作,但在幕后,您可能同时安装了源代码和框架,这可能不是什么好事。
3zwtqj6y

3zwtqj6y1#

我误读了PodSpec。我看到spec.source,很快就认为它也在拉入源文件。
但是,要拉入源文件,您必须执行spec.source_files = 'Honey/common/**/*.swift'
基本上,在上面的示例中,您最终只是在没有源文件的情况下下拉vendored_framework
通常您可以执行以下操作:
1.有两个不同的PodSpecs。参见here。确保你也看到了里面的链接。
1.有两个SubSpecs。沿着一个default_subspecs。参见here。使用这种方法时,您不应该尝试同时引入两个SubSpecs。

相关问题