微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – Cocoapods – podspec验证但不能推送回购

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

目标是:

>使用Podspecs的私人仓库
>让框架以二进制形式分发(与源代码相对)

我已经读过CocoaPods frameworks,Making a CocoaPod以及其他参考文献(似乎不能包含超过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' => '[email protected]' }
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

问题:当我尝试将规范推送到repo时,验证失败,如下面的输出所示:

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验证推送到repo时,如何使podspec验证成功?

其他说明:

>将SDK.framework复制到/ Frameworks可手动运行.
>如果我在Pods Xcode项目中包含“复制文件”构建步骤,则不会复制该文件.
>使用CocoaPods 1.1.0.

解决方法

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

请务必检查您指向source_files的目录.我发现以这种方式维护任何类型的结构都非常困难,并且将所有文件包含在单个文件夹中更容易.

s.source_files = '<InsertName>/**/Classes/*'

File Patters上查看cocoapods建议,以获得一些帮助.

通过一个消除过程,我建议首先尝试在podspec中推送回复注释掉source_files,并从那里开始前进.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐