Swift Cocoapods-podspec验证但可以';我们不能被迫回购

Swift Cocoapods-podspec验证但可以';我们不能被迫回购,swift,cocoapods,Swift,Cocoapods,我正在通过CocoaPods建立一个Swift框架 目标是: 对podspec使用私有回购协议 将框架作为二进制文件分发(与源代码相反) 我已经阅读了,加上其他参考资料(似乎不能包含超过2个与当前SO声誉相关的链接,但我可以在评论中指出来源) 我使用的Podspec是: Pod::Spec.new do |s| s.name = 'SDK' s.version = '0.0.1' s.summary = 'My SDK' s.des

我正在通过CocoaPods建立一个Swift框架

目标是:

  • 对podspec使用私有回购协议
  • 将框架作为二进制文件分发(与源代码相反)
我已经阅读了,加上其他参考资料(似乎不能包含超过2个与当前SO声誉相关的链接,但我可以在评论中指出来源)

我使用的Podspec是:

Pod::Spec.new do |s|
s.name             = 'SDK'
s.version          = '0.0.1'
s.summary          = 'My SDK'
s.description      = 'SDKs description'

s.homepage         = 'https://github.com/XXX/sdk'
s.license          = { :type => 'MIT', :file => 'LICENSE' }
s.author           = { 'XXX' => 'xxx@xxx.com' }
s.source           = { :git => 'https://github.com/XXX/sdk.git', :tag => s.version.to_s }

s.ios.deployment_target = '8.0'
s.platform = :ios, '9.0'

s.source_files = 'SDK/Classes/**/*'

s.preserve_paths = 'Frameworks/SDK.framework'
s.ios.vendored_frameworks = 'Frameworks/SDK.framework'
end
除了标准版本(arm64、armv7)之外,Pods xcode项目也被修改为构建i386 arch

如果我将SDK.framework文件复制到.podspec文件夹中的/Frameworks文件夹中,则此规范将通过成功地进行本地验证:

pod lib lint
问题:当我尝试将规范推送到回购协议时,验证失败,如下输出所示:

pod repo push mySDKPrivateRepo SDK.podspec 

Validating spec
 -> SDK (0.0.1)
    - ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
    - ERROR | file patterns: The `preserve_paths` pattern did not match any file.
    - ERROR | [iOS] file patterns: The `vendored_frameworks` pattern did not match any file.

[!] The `SDK.podspec` specification does not validate.
问题:

pod repo push mySDKPrivateRepo SDK.podspec 

Validating spec
 -> SDK (0.0.1)
    - ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
    - ERROR | file patterns: The `preserve_paths` pattern did not match any file.
    - ERROR | [iOS] file patterns: The `vendored_frameworks` pattern did not match any file.

[!] The `SDK.podspec` specification does not validate.
  • 将podspec验证推送到回购时,我如何才能使其成功 其他说明:

  • 手动将SDK.framework复制到/Frameworks
  • 如果在Pods Xcode项目中包含复制文件生成步骤,则不会复制文件
  • 使用CocoaPods 1.1.0

  • 我遇到了类似的问题,罪魁祸首是项目结构本身

    确保检查源文件指向的目录。我发现以这种方式维护任何类型的结构都是非常困难的,而且将所有文件包含在一个文件夹中更容易

    s.source_files = '<InsertName>/**/Classes/*'
    
    s.source\u文件='/**/Classes/*'
    
    看一下cocoapods的建议,获得一些帮助


    通过一个消除过程,我建议首先尝试推到repo,对podspec中的源文件进行注释,然后从那里开始工作

    @Galazy-你找到答案了吗?我最后评论了这句话,并在结尾处添加了--allow警告