我知道如何在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有办法解决这个问题。
- 也许我用的博客文章是错误的
- 虽然可以正常工作,但在幕后,您可能同时安装了源代码和框架,这可能不是什么好事。
1条答案
按热度按时间3zwtqj6y1#
我误读了PodSpec。我看到
spec.source
,很快就认为它也在拉入源文件。但是,要拉入源文件,您必须执行
spec.source_files = 'Honey/common/**/*.swift'
基本上,在上面的示例中,您最终只是在没有源文件的情况下下拉
vendored_framework
。通常您可以执行以下操作:
1.有两个不同的PodSpecs。参见here。确保你也看到了里面的链接。
1.有两个SubSpecs。沿着一个
default_subspecs
。参见here。使用这种方法时,您不应该尝试同时引入两个SubSpecs。