Cocoapods - podspec validates but can't be pushed to repo
我正在通过CocoaPods建立一个Swift框架。
目标是:
- 使用Podspecs的私人仓库
- 具有以二进制形式分发的框架(与源代码相反)
我已经阅读了CocoaPods框架,制作了CocoaPod以及其他参考文献(似乎不能包含超过2个具有当前SO声誉的链接,但我可以在注释中指出来源)。
我正在使用的Podspec是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 |
将Pods xcode项目更改为除了标准版本(arm64,armv7)之外,还构建i386 arch。
如果我将SDK.framework文件复制到.podspec文件夹中的/ Frameworks文件夹中,则此规范可在本地成功验证:
1 | pod lib lint |
问题:当我尝试将规范推送到仓库时,验证失败,如下所示:
1 2 3 4 5 6 7 8 9 | 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. |
问题:
其他说明:
我遇到了类似的问题,罪魁祸首是项目结构本身。
请确保检查您的源文件指向哪个目录。我发现以这种方式维护任何一种结构都是非常困难的,将所有文件都包含在一个文件夹中会更容易。
1 | s.source_files = '<InsertName>/**/Classes/*' |
请参阅File Patters上的cocoapods建议,以获取有关此方面的帮助。
通过消除的过程,我建议尝试先推动存储库在podspec中注释source_file,然后从那里继续前进。