我想把我的私有组件的文件分目录存储,我在网上搜了一大堆,但是实验后全部检查不通过。最近我终于找到原因了。因为网上文章抄来抄去全部都不正确,原因是因为在注释前是podspec格式文件不支持的"//"。而podspec格式文件支持注释符号是"#"。失之毫厘,谬以千里。
1、建立工程,创建.podspec文件。
# # Be sure to run `pod lib lint YXPaylibraryManager.podspec' to ensure this is a # valid spec before submitting. # # Any lines starting with a # are optional, but their use is encouraged # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html # Pod::Spec.new do |s| s.name = 'BITCocoaLumberjack' s.version = '0.0.3' s.summary = 'BITCocoaLumberjack.' # This description is used to generate tags and improve search results. # * Think: What does it do? Why did you write it? What is the focus? # * Try to keep it short, snappy and to the point. # * Write the description between the DESC delimiters below. # * Finally, don't worry about the indent, CocoaPods strips it! s.description = <<-DESC TODO: Add long description of the pod here. DESC s.homepage = 'http://www.baidu.com/' # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'jiaguoshang' => 'jia12216@163.com' } s.source = { :git => 'https://gitee.com/jia12216/BITCocoaLumberjack.git', :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' s.ios.deployment_target = '8.0' #**/*表示Classes目录及其子目录下所有文件 # s.source_files = 'BITCocoaLumberjack/Classes/**/*' #第一层文件夹名称Default(虚拟路径),千万别把目录名称写成Classes,或者检查势失败,Classes应该是系统保留字 s.subspec 'Default' do |ss| #下载Classes下所有的.h和.m文件 ss.source_files = 'BITCocoaLumberjack/Classes/*.{h,m}' #允许使用import<CocoaLumberjack.h> ss.public_header_files = 'BITCocoaLumberjack/CocoaLumberjack.h' #允许使用import<CocoaLumberjackMacro.h> ss.public_header_files = 'BITCocoaLumberjack/CocoaLumberjackMacro.h' #允许使用import<CocoaLumberjackNoLogsMacro.h> ss.public_header_files = 'BITCocoaLumberjack/CocoaLumberjackNoLogsMacro.h' #第二层文件夹名称Extensions(虚拟路径) ss.subspec 'Extensions' do |sss| #下载Extensions下所有的.h和.m文件 sss.source_files = 'BITCocoaLumberjack/Classes/Extensions/*.{h,m}' end end # s.resource_bundles = { # 'BITCocoaLumberjack' => ['BITCocoaLumberjack/Classes/*.xcassets'] # } # s.public_header_files = 'Pod/Classes/**/*.h' s.frameworks = 'UIKit', 'Foundation' #s.dependency 'ReactiveCocoa', '~> 2.5' #依赖制定版本的组件 end
若是使用s.source_files = ‘BITCocoaLumberjack/Classes/**/*’,那么它是表示的是Classes目录及其子目录下所有文件。
ss.subspec ‘Extensions’ do |sss|是表示第二层文件夹名称Default(虚拟路径)。
有时间成功和你只差两个字符。
2、编辑检查podspec文件。
pod spec lint BITCocoaLumberjack.podspec --allow-warnings
w1:BITCocoaLumberjack jiaguoshang$ pod spec lint BITCocoaLumberjack.podspec --allow-warnings -> BITCocoaLumberjack (0.0.1) - NOTE | xcodebuild: note: Using new build system - NOTE | [iOS] xcodebuild: note: Planning build - NOTE | [iOS] xcodebuild: note: Constructing build description - NOTE | [iOS] xcodebuild: warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App') Analyzed 1 podspec. BITCocoaLumberjack.podspec passed validation.
3、在码云或gitHub创建公有项目,打版本标签,上传工程。
4、Cocoapods注册Trunk。
这个邮件有时间发过来不是一般的慢啊!
不行了多发几次吧!
收到的确认邮件
拷贝粘贴激活链接到浏览器上打开
w1:BITCocoaLumberjack jiaguoshang$ pod trunk register jia12216@163.com 'jiaguoshang' [!] Please verify the session by clicking the link in the verification email that has been sent to jia12216@163.com w1:BITCocoaLumberjack jiaguoshang$ pod trunk me - Name: jiaguoshang - Email: jia12216@163.com - Since: December 5th, 2017 06:32 - Pods: - AERequestManage - Sessions: - December 5th, 2017 06:32 - April 13th, 03:45. IP: 218.72.30.25 Description: macbook air - November 28th, 03:55 - April 5th, 2019 03:55. IP: 125.119.191.112 - November 28th, 18:59 - April 5th, 2019 19:00. IP: 125.119.191.112
4、上传配置到公有源。
pod trunk push BITCocoaLumberjack.podspec --allow-warnings
w1:BITCocoaLumberjack jiaguoshang$ pod trunk push BITCocoaLumberjack.podspec --allow-warnings Updating spec repo `master` warning: inexact rename detection was skipped due to too many files. warning: you may want to set your diff.renameLimit variable to at least 30696 and retry the command. CocoaPods 1.6.0.beta.2 is available. To update use: `gem install cocoapods --pre` [!] This is a test version we'd love you to try. For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.6.0.beta.2 Validating podspec -> BITCocoaLumberjack (0.0.1) - NOTE | xcodebuild: note: Using new build system - NOTE | [iOS] xcodebuild: note: Planning build - NOTE | [iOS] xcodebuild: note: Constructing build description - NOTE | [iOS] xcodebuild: warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App') Updating spec repo `master` CocoaPods 1.6.0.beta.2 is available. To update use: `gem install cocoapods --pre` [!] This is a test version we'd love you to try. For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.6.0.beta.2 -------------------------------------------------------------------------------- Congrats BITCocoaLumberjack (0.0.1) successfully published November 28th, 20:53 https://cocoapods.org/pods/BITCocoaLumberjack Tell your friends! --------------------------------------------------------------------------------
5、把自己的公有库添加到podfile文件并更新pod来测试下。
w1:HZBitSmartLock jiaguoshang$ pod update --verbose --no-repo-update Integrating client project Integrating target `Pods-HZBitSmartLock` (`HZBitSmartLock.xcodeproj` project) - Running post install hooks - cocoapods-stats from `/Users/jiaguoshang/.rvm/gems/ruby-2.4.0@global/gems/cocoapods-stats-1.0.0/lib/cocoapods_plugin.rb` Sending stats - BITCocoaLumberjack, 0.0.1 -> Pod installation complete! There are 1 dependencies from the Podfile and 1 total pods installed. [!] The `HZBitSmartLock [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-HZBitSmartLock/Pods-HZBitSmartLock.debug.xcconfig'. This can lead to problems with the CocoaPods installation - Use the `$(inherited)` flag, or - Remove the build settings from the target. [!] The `HZBitSmartLock [Release]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-HZBitSmartLock/Pods-HZBitSmartLock.release.xcconfig'. This can lead to problems with the CocoaPods installation - Use the `$(inherited)` flag, or - Remove the build settings from the target.