我正在通过CocoaPods建立一个Swift框架。
目标是:
我已经阅读了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' => '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
问题:当我尝试将规范推送到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.
问题:
其他说明:
答案 0 :(得分:0)
我遇到了类似的问题,罪魁祸首是项目结构本身。
请务必检查您指向source_files的目录。我发现以这种方式维护任何类型的结构非常困难,并且将所有文件都包含在一个文件夹中更容易。
s.source_files = '<InsertName>/**/Classes/*'
在File Patters上查看cocoapods建议,以获得一些帮助。
通过消除过程,我建议首先尝试在podspec中推送注释out_files的repo,并从那里开始前进。