platform :ios, '7.0' pod 'MyLibrary', :path => '~/Documents/PodSample/MyLibrary.podspec'
platform :ios, '7.0' pod 'MyLibrary', :path => '..'
$ cd ~/Documents/PodSample/Project/ $ pod install Analyzing dependencies Fetching podspec for `MyLibrary` from `~/Documents/PodSample/MyLibrary.podspec` Downloading dependencies Using MyLibrary (0.0.1) Generating Pods project Integrating client project
Pod::Spec.new do |s| s.name = "MyLibrary" s.version = "0.0.2" s.summary = "Example of creating own pod." s.homepage = "https://github.com/username/MyCustomPod" s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { "Username" => "username@mail.domain" } s.platform = :ios, 7.0 s.source = { :git => "https://github.com/username/MyCustomPod.git", :tag => s.version.to_s } s.framework = 'Foundation' s.requires_arc = true s.default_subspec = 'Core' # Core s.subspec 'Core' do |core| core.source_files = 'Classes/AKClass.{h,m}' core.public_header_files = 'Classes/*.h' core.dependency 'MyLibrary/Connection' core.dependency 'MyLibrary/Provider' end s.subspec 'Provider' do |provider| provider.source_files = 'Classes/AKProvider.{h,m}' provider.frameworks = 'MapKit', 'CoreData' # provider.platform = :ios, 5.0 # iOS 5.0 end s.subspec 'AccessToken' do |access_token| access_token.source_files = 'Classes/AKAccessToken.{h,m}' access_token.libraries = 'xml2' # access_token.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' } # end s.subspec 'Parser' do |parser| parser.source_files = 'Classes/AKParser.{h,m}' end s.subspec 'Storage' do |storage| storage.source_files = 'Classes/AKStorage.{h,m}' storage.dependency 'MyLibrary/AccessToken' end s.subspec 'Connection' do |connection| connection.source_files = 'Classes/AKConnection.{h,m}' connection.dependency 'MyLibrary/Storage' connection.dependency 'MyLibrary/Parser' end end
… s.subspec 'Connection' do |onnection| onnection.source_files = 'Classes/AKConnection.{h,m}' onnection.dependency 'MyLibrary/Storage' onnection.dependency 'MyLibrary/Parser' onnection.subspec 'Cache' do |cache| cache.source_files = 'Classes/AKCache/*.{h,m}' end end …
$ pod spec lint ~/Documents/PodSample/MyLibrary.podspec --quick -> MyLibrary (0.0.2) Analyzed 1 podspec. MyLibrary.podspec passed validation.
$ git add MyLibrary.podspec && git commit -m "Spec sliced on subspecs" $ git add -A && git commit -m "Sliced code" $ git tag "0.0.2" $ git push origin master --tags
$ pod spec lint ~/Documents/PodSample/MyLibrary.podspec -> MyLibrary (0.0.2) Analyzed 1 podspec. MyLibrary.podspec passed validation.
platform :ios, '7.0' pod 'MyLibrary/Storage' pod 'MyLibrary/Parser'
platform :ios, '7.0' pod 'MyLibrary'
platform :ios, '7.0' pod 'MyLibrary/Provider', :path => '..' pod 'MyLibrary/Connection', :path => '..'
$ cd ~/Documents/PodSample/Project/ $ pod update Analyzing dependencies Fetching podspec for `MyLibrary` from `..` Fetching podspec for `MyLibrary` from `..` Downloading dependencies Installing MyLibrary (0.0.2) Generating Pods project Integrating client project
Pod::Spec.new do |s| s.name = "MyLibrary" s.version = "0.0.3" s.summary = "Example of creating own pod." s.homepage = "https://github.com/username/MyCustomPod" s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { "Username" => "username@mail.domain" } s.platform = :ios, 7.0 s.source = { :git => "https://github.com/username/MyCustomPod.git", :tag => s.version.to_s } s.framework = 'Foundation' s.requires_arc = true s.default_subspec = 'Core' # Core s.subspec 'Core' do |core| core.source_files = 'Classes/AKClass.{h,m}' core.public_header_files = 'Classes/*.h' core.dependency 'MyLibrary/Connection' core.dependency 'MyLibrary/Provider' end s.subspec 'Provider' do |provider| provider.source_files = 'Classes/AKProvider.{h,m}' provider.frameworks = 'MapKit', 'CoreData' # provider.platform = :ios, 5.0 # iOS 5.0 end s.subspec 'AccessToken' do |access_token| access_token.source_files = 'Classes/AKAccessToken.{h,m}' access_token.libraries = 'xml2' # access_token.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' } # end s.subspec 'Parser' do |parser| parser.source_files = 'Classes/AKParser.{h,m}' end s.subspec 'Storage' do |storage| storage.source_files = 'Classes/AKStorage.{h,m}' storage.dependency 'MyLibrary/AccessToken' end s.subspec 'Connection' do |connection| connection.source_files = 'Classes/AKConnection.{h,m}' connection.dependency 'MyLibrary/Storage' connection.dependency 'MyLibrary/Parser' connection.dependency 'AFNetworking' # "pod"' end end
$ cd ~/Documents/PodSample/Project/ $ pod update Analyzing dependencies Fetching podspec for `MyLibrary` from `..` Fetching podspec for `MyLibrary` from `..` Downloading dependencies Installing AFNetworking (2.0.1) Installing MyLibrary (0.0.3) Generating Pods project Integrating client project
Source: https://habr.com/ru/post/198904/
All Articles