尝试lint包含该框架的podspec时,我收到以下错误:
ERROR | File Patterns: The spec is empty (no source files, resources, resource_bundles, preserve paths, vendored_libraries, vendored_frameworks, dependencies, nor subspecs).
我的podspec很简单,看起来像这样:
Pod::Spec.new do |s|
s.name = 'MyFramework'
s.module_name = 'MyFramework'
s.version = '0.0.1'
s.summary = 'Summary goes here...'
s.license = 'MIT'
s.homepage = 'http://GITHUB_ACCOUNT.com'
s.frameworks = ["CoreData", "CoreGraphics", "CoreImage", ...more frameworks]
s.requires_arc = true
s.source = {
:git => "https://github.com/GITHUB_ACCOUNT/MyFramework.git",
:tag => s.version.to_s
}
s.ios.platform = :ios, '9.0'
s.ios.preserve_paths = 'MyFramework.embeddedframework/MyFramework.framework'
s.ios.public_header_files = 'MyFramework.embeddedframework/MyFramework.framework/Versions/A/Headers/*.h'
s.ios.vendored_frameworks = 'MyFramework.embeddedframework/MyFramework.framework'
end
podspec的基本格式实际上是由Cocoapods-Packager生成的。我确保podspec中的以下路径都指向预期的文件:
s.ios.preserve_paths = 'MyFramework.embeddedframework/MyFramework.framework'
s.ios.public_header_files = 'MyFramework.embeddedframework/MyFramework.framework/Versions/A/Headers/*.h'
s.ios.vendored_frameworks = 'MyFramework.embeddedframework/MyFramework.framework'
首先运行pod spec lint --verbose
告诉我** BUILD SUCCEEDED **
',然后生成错误。
通过pod update
在项目中使用框架有效!但是我无法将吊舱变成棉绒,因此我永远无法将其提交给Cocoapods仓库。
请注意,我在此处粘贴的podspec中的所有愚蠢路径('http://GITHUB_ACCOUNT.com'
)都只是占位符,并且是我实际podspec中的有效路径。
我正在使用cocoapods 0.39.0。
有什么想法吗?
答案 0 :(得分:2)
发现这里出了什么问题。
s.ios.platform = :ios, '9.0'
表示linter将为所有平台构建。
由Cocoapods-Packager创建的podspec最初具有以下功能:
s.platform = :ios, '9.0'
s.ios.platform = :ios, '9.0'
我想,在某些时候我无意中删除了第一行。无论如何,缺少s.platform
告诉linter你要在所有平台上测试。
请参阅valid = spec.available_platforms.send(fail_fast ? :all? : :each) do |platform|
here
我从未期望在所有平台上进行测试,只有iOS。事实证明,在测试watchOS时,linter失败了,我并不关心......
希望这可以帮助犯同样错误的人!