CocoaPods — iOS, macOS, watchOS va tvOS loyihalari uchun ochiq manbali bog'liqlik menejeri. CocoaPods Ruby tilida yaratilgan bo'lib, 100 000 dan ortiq kutubxonaga ega spetsifikatsiyalar reestridan (Specs) foydalanadi. Integratsiya loyihaning barcha bog'liqliklari tavsiflangan Podfile fayli orqali amalga oshiriladi. O'rnatish natijasi — asosiy loyiha va barcha ulangan modullarni birlashtiruvchi .xcworkspace. CocoaPods iOS-ishlab chiqarishda eng mashhur bog'liqlik menejeri bo'lib qolmoqda: Stack Overflow Survey (2025) so'roviga ko'ra, iOS-ishlab chiqaruvchilarning 34 foizi undan foydalanadi.
Asosiy Ma'lumotlar
pod install orqali .xcworkspace yaratadi — faqat bu fayl Xcode ochilishi kerakCocoaPods — Apple ekotizimi uchun Ruby tilida yozilgan va 2011 yilda Eladio Lopez tomonidan nashr qilingan bog'liqlik menejeri. CocoaPods Xcode loyihalariga uchinchi tomon kutubxonalarini integratsiya qilish muammosini hal qiladi: fayllarni qo'lda nusxalash va linker flags sozlash o'rniga, ishlab chiqaruvchi bog'liqliklarni Podfile da tavsiflaydi va pod install ni ishga tushiradi. CocoaPods avtomatik ravishda manba fayllarni yuklab oladi, kompilyator bayroqlarini sozlaydi va .xcworkspace ish maydonini yaratadi.
CocoaPods arxitekturasi uch komponentni o'z ichiga oladi: CocoaPods.app (CLI vositasi), Specs (GitHubdagi markaziy spetsifikatsiyalar reestri) va Podfile (loyiha konfiguratsiyasi). Specs reestri versiya tarixi bilan 100 000 dan ortiq kutubxonani o'z ichiga oladi. pod install bajarilganda, CocoaPods reestrning eng so'nggi versiyasini yuklab oladi (pod repo update), bog'liqliklarni topadi, versiyalar daraxtini hal qiladi va barcha podlar integratsiyasi bilan .xcworkspace yaratadi. Har bir kutubxona alohida target sifatida kompilyatsiya qilinadi, bu bog'liqliklarni izolyatsiya qilish va nomlar ziddiyatidan qochish imkonini beradi.
CocoaPods Xcode bilan chambarchas integratsiyalashgan: u sarlavha yo'llari va linker bayroqlari bilan Pods.xcconfig fayllarini yaratadi, shuningdek User Script Sandboxing ni sozlaydi. macOS da CocoaPods dan foydalanish uchun Ruby 2.6+ (barcha Mac larda oldindan o'rnatilgan) va Command Line Tools bilan Xcode talab qilinadi. Statistik ma'lumotlar: 2025 yilda CocoaPods 10 milliarddan ortiq pod yuklab olishlarni qayta ishladi va o'rtacha iOS loyihasida CocoaPods orqali 15 dan 40 gacha bog'liqlik mavjud.
CocoaPods har bir kutubxonani alohida Git repozitoriysi sifatida yuklab oladi, uning .podspec spetsifikatsiyasini tekshiradi va statik freymvork yoki dinamik kutubxona sifatida kompilyatsiya qiladi. Podlar boshqa podlarga bog'liq bo'lishi mumkin — CocoaPods bog'liqlik grafigini quradi va versiyalar ziddiyatlarini hal qiladi. Agar ikkita kutubxona bir xil bog'liqlikning turli versiyalarini talab qilsa, CocoaPods mos versiyani topishga harakat qiladi yoki xato xabar beradi. Barcha bog'liqliklar va ularning versiyalari Podfile.lock faylida qayd qilinadi va versiya nazorat tizimiga qo'shilishi kerak.
CocoaPods ning qo'lda integratsiyaga nisbatan afzalliklari: bog'liqliklarni avtomatik boshqarish, markazlashtirilgan kutubxona reestri, subspetsifikatsiyalar (subspecs) qo'llab-quvvatlashi, xususiy repozitoriyalar yaratish imkoniyati va semantik nazorat orqali versiyalash. Ishlab chiqaruvchilar jamoasi uchun CocoaPods barcha a'zolar bir xil kutubxona versiyalaridan foydalanishini kafolatlaydi — Podfile.lock har qanday mashinada qurilishning takrorlanuvchanligini ta'minlaydi.
Podfile — Xcode loyihasining bog'liqliklarini belgilaydigan Ruby tilidagi konfiguratsiya fayli. Podfile loyihaning ildizida .xcodeproj yonida joylashgan. CocoaPods sintaksisi Ruby DSL (Domain Specific Language) ga asoslangan bo'lib, o'zgaruvchilar, shartlar va sikllardan foydalanish imkonini beradi. Minimal Podfile platforma va kamida bitta bog'liqlikni o'z ichiga oladi.
platform :ios, '15.0'
target 'MyApp' do
pod 'Alamofire', '~> 5.9'
pod 'SnapKit', '~> 5.7'
pod 'Kingfisher', '~> 8.0'
endplatform :ios, '15.0' kalit qatori minimal iOS versiyasini belgilaydi. target 'MyApp' direktivi bog'liqliklarni muayyan target uchun guruhlaydi. Har bir pod 'Name', '~> version' qatori kutubxona nomi va versiyasini ko'rsatadi. '~> 5.9' operatori “5.9 dan 6.0 gacha, 6.0 dan tashqari har qanday versiya” degan ma'noni anglatadi — bu breaking changes dan himoya qiluvchi semantik versiyalashdir.
CocoaPods moslashuvchan versiya operatorlarini qo'llab-quvvatlaydi: '= 1.0' (aniq versiya), '>= 1.0' (minimal), '< 2.0' (maksimal), '~> 1.2.3' (faqat patch). Kutubxonani lokal papkadan ulash pod 'MyLib', :path => '../MyLib' orqali amalga oshirilishi mumkin. Git dan ulash uchun: pod 'MyLib', :git => 'https://github.com/user/MyLib.git', :tag => '1.0.0'.
platform :ios, '15.0'
use_frameworks! :linkage => :static
inhibit_all_warnings!
target 'MyApp' do
pod 'Alamofire', '~> 5.9'
pod 'Firebase/Crashlytics', '~> 11.0'
target 'MyAppTests' do
inherit! :search_paths
pod 'Nimble', '~> 13.0'
end
end
target 'MyWatchExtension' do
platform :watchos, '9.0'
pod 'Alamofire', '~> 5.9'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
end
end
enduse_frameworks! podlarning statik kutubxonalar o'rniga freymvork sifatida kompilyatsiyasini yoqadi (Xcode 15+ dan boshlab standart xatti-harakat). :linkage => :static atributi freymvorklarni majburiy statik qiladi, ilova hajmini kamaytiradi. inhibit_all_warnings! podlardan ogohlantirishlarni o'chiradi — qurilish jurnalining tozaligi uchun foydali. inherit! :search_paths bilan ichki targetlar (masalan, testlar uchun) faqat qidiruv yo'llarini oladi, barcha bog'liqliklarni qayta kompilyatsiya qilmaydi. post_install bloki barcha pod targetlari uchun qurilish konfiguratsiyasini sozlaydi — bu yagona minimal iOS versiyasini belgilash uchun standart namundir.
Podfile.lock pod install paytida avtomatik ravishda yaratiladi. U tranzitiv bog'liqliklarni ham o'z ichiga olgan holda barcha o'rnatilgan bog'liqliklarning aniq versiyalarini qayd qiladi. Lock fayli repozitoriyada saqlanishi kerak — usiz boshqa mashinada pod install boshqa versiyalarni o'rnatishi mumkin. pod update PodName buyrug'i muayyan podni yangilab, Podfile.lock ni o'zgartiradi. pod outdated yangiroq versiyalari mavjud bo'lgan podlar ro'yxatini ko'rsatadi.
Podspec — CocoaPods uchun kutubxonani tavsiflovchi .podspec kengaytmali Ruby fayli. Podspec metama'lumotlar (nom, versiya, muallif), manba kodi, bog'liqliklar, tizim freymvorklari va platforma talablarini o'z ichiga oladi. CocoaPods reestrda nashr qilishdan oldin pod spec lint validatsiyasi orqali podspec ni tekshiradi.
Pod::Spec.new do |s|
s.name = 'NetworkingKit'
s.version = '1.2.0'
s.summary = 'Lightweight HTTP client for iOS'
s.description = 'NetworkingKit is a Swift HTTP client with async/await support, built-in caching, and automatic retry logic.'
s.homepage = 'https://github.com/user/NetworkingKit'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'Developer' => 'dev@example.com' }
s.source = { :git => 'https://github.com/user/NetworkingKit.git', :tag => s.version.to_s }
s.ios.deployment_target = '15.0'
s.swift_version = '5.9'
s.source_files = 'Sources/**/*.swift'
s.dependency 'Alamofire', '~> 5.9'
ends.name — reestrdagi kutubxonaning noyob nomi. s.version Git tegiga mos keladi (nashr qilish uchun muhim). s.source_files — manba fayllarni kiritish uchun glob andoza. s.dependency versiya bilan boshqa podlarga bog'liqlikni ko'rsatadi. s.ios.deployment_target minimal qo'llab-quvvatlanadigan iOS versiyasini belgilaydi — CocoaPods agar loyiha eskiroq versiyadan foydalansa, avtomatik ravishda ogohlantiradi. Xususiy podlar uchun reestrda nashr qilish o'rniga Podfile da :path dan foydalanish mumkin.
Kutubxonani markaziy Specs reestriga nashr qilish pod trunk push NetworkingKit.podspec orqali amalga oshiriladi. Avval pod trunk register dev@example.com 'Developer' orqali ro'yxatdan o'tish talab qilinadi. CocoaPods podspec ning to'g'riligini tekshiradi va Specs repozitoriyasiga pull request yuboradi. Muqobil variant — kompaniyaning ichki kutubxonalari uchun pod repo push xususiy reestridir.
Subspecs kutubxonani foydalanuvchi tanlab ulashi mumkin bo'lgan modullarga bo'lish imkonini beradi. Masalan, Firebase subspecs dan foydalanadi: pod 'Firebase/Crashlytics' Firebase ning boshqa modullarisiz faqat Crashlytics ni ulaydi. Subspec bazaviy konfiguratsiyani meros qilib oladi va o'zining source_files va bog'liqliklarini qo'shishi mumkin.
| Buyruq | Harakat |
|---|---|
pod spec lint | Podspec ning to'g'riligini tekshirish |
pod trunk register | CocoaPods Trunk da ro'yxatdan o'tish |
pod trunk push | Podspec ni reestrda nashr qilish |
pod repo push | Xususiy reestrda nashr qilish |
pod lib lint | Kutubxonaning lokal validatsiyasi |
CocoaPods RubyGems — Ruby ning standart paket menejeri orqali o'rnatiladi. macOS da Ruby oldindan o'rnatilgan, shuning uchun terminalda bitta buyruq kifoya. Muqobil usul — CocoaPods ni alohida formula sifatida o'rnatadigan Homebrew dir. O'rnatishdan so'ng, loyihani ishga tushirish pod init buyrug'i bilan amalga oshiriladi, u asosiy konfiguratsiya bilan Podfile yaratadi. Podfile ni bog'liqliklar bilan to'ldirgandan so'ng, ishlab chiqaruvchi pod install ni ishga tushiradi — CocoaPods kutubxonalarni yuklab oladi va ish maydonini yaratadi.
# O'rnatish CocoaPods orqali RubyGems
sudo gem install cocoapods
# Muqobil o'rnatish orqali Homebrew
brew install cocoapods
# Initsializatsiya Podfile loyihada
cd /path/to/Project
pod init
# Bog'liqliklarni o'rnatish
pod installMuhim qoida: pod install dan so'ng har doim .xcworkspace ni oching, .xcodeproj ni emas. Agar .xcodeproj ni ochsangiz, Xcode podlarni ko'rmaydi va qurilish link xatolar bilan tugaydi. pod install buyrug'i bog'liqliklarni faqat Podfile o'zgarganda yoki birinchi ishga tushirishda yuklab oladi. Barcha podlarni majburiy qayta o'rnatish uchun pod install --repo-update yoki pod deintegrate && pod install ishlatiladi.
Yangilash CocoaPods sudo gem update cocoapods yoki brew upgrade cocoapods orqali amalga oshiriladi. CocoaPods versiyasi pod --version buyrug'i bilan tekshiriladi. 1.12 versiyasidan (2024) boshlab, CocoaPods modullarni qattiq tekshirish sozlamalari va yaxshilangan tranzitiv bog'liqliklarni hal qilish bilan Xcode 15 ni qo'llab-quvvatlaydi. mid-2025 uchun so'nggi barqaror versiya — Swift 6 qo'llab-quvvatlashi va 50+ podli loyihalar uchun bog'liqlik grafigini hal qilishning yaxshilangan samaradorligi bilan 1.16.
# Barcha podlarni eng so'nggi versiyalarga yangilash
pod update
# Muayyan podni yangilash
pod update Alamofire
# Eskirgan bog'liqliklarni tekshirish
pod outdated
# Olib tashlash CocoaPods loyihadan
pod deintegratepod update argumentsiz barcha podlarni Podfile ga muvofiq eng so'nggi mos versiyalarga yangilaydi (~> operatorlarini hisobga olgan holda). pod outdated Podfile.lock dagi joriy versiya va eng so'nggi mavjud versiya o'rtasidagi farqni ko'rsatadi. pod deintegrate CocoaPods ni loyihadan butunlay olib tashlaydi — .xcworkspace, konfiguratsiya fayllari va qurilish sozlamalarini o'chiradi. Bu Swift Package Manager ga migratsiya qilishda foydalidir.
Bog'liqliklarni boshqarish CocoaPods da to'rt jihatni o'z ichiga oladi: versiyalarni qayd qilish, ziddiyatlarni hal qilish, qurilishni optimallashtirish va tranzitiv bog'liqliklar bilan ishlash. CocoaPods Podfile.lock asosida bog'liqlik grafigini quradi — agar loyihada ikkalasi ham C ga bog'liq bo'lgan A va B kutubxonalari ishlatilsa, CocoaPods ikkalasining talablarini qondiradigan C versiyasini topadi.
Ziddiyatlar ikki bog'liqlik bir kutubxonaning mos kelmaydigan versiyalarini talab qilganda yuzaga keladi. CocoaPods ziddiyatli talablarni ko'rsatgan holda xato xabar qiladi. Yechimlar: bog'liqliklardan birini mos versiyaga yangilash, muayyan commit ni ko'rsatgan holda pod 'Lib', :git => ... ishlatish yoki o'zgartirilgan bog'liqlik bilan kutubxonalardan birini fork qilish. Katta loyihalar uchun har bir pull request da pod lib lint bilan CI validatsiyasini sozlash tavsiya etiladi.
CocoaPods bir nechta rivojlangan imkoniyatlarni taklif qiladi: kutubxonalarni lokal rivojlantirish uchun :path, fork larni ulash uchun :git, rivojlanish branch larini sinash uchun :branch. use_frameworks! direktivasi :linkage => :static bilan yakuniy binar fayl hajmini minimal darajaga tushiradi. A/B testlash va feature flag lar uchun Podfile da Ruby shartli konstruksiyalari orqali podlarning turli versiyalarini ulash mumkin.
platform :ios, '15.0'
use_frameworks!
# Muhitni aniqlash
is_debug = defined?(DEBUG) && DEBUG
target 'MyApp' do
# Asosiy bog'liqliklar
pod 'Alamofire', '~> 5.9'
pod 'SnapKit', '~> 5.7'
# Rivojlanish uchun lokal kutubxona
pod 'MyInternalLib', :path => '../MyInternalLib'
# Disk raskadrovka uchun shartli bog'liqlik
if is_debug
pod 'SwiftyBeaver', '~> 2.0'
else
pod 'CocoaLumberjack', '~> 3.8'
end
# Xatoni tuzatish bilan fork
pod 'Kingfisher', :git => 'https://github.com/user/Kingfisher.git', :branch => 'fix-memory-leak'
end
abstract_target 'Pods' do
pod 'Alamofire'
endabstract_target muayyan Xcode target ga bog'lanmagan holda umumiy bog'liqliklar uchun virtual target yaratadi. Ruby shartli konstruksiyalari Debug va Release konfiguratsiyalari uchun turli kutubxonalarni ulash imkonini beradi. Lokal kutubxona bilan :path rivojlanishni tezlashtiradi — o'zgarishlar pod install ni qayta ishga tushirmasdan qo'llaniladi. :branch rejimi rasmiy nashrdan oldin o'zgarishlarni sinash uchun foydalidir.
CocoaPods, Swift Package Manager (SPM) va Carthage — iOS rivojlanishidagi uchta asosiy bog'liqlik menejeri. Har biri o'z arxitekturasi, integratsiya yondashuvi va nazorat darajasiga ega. CocoaPods kutubxonalar soni bo'yicha yetakchi, SPM Xcode ichiga o'rnatilgan qo'llab-quvvatlash tufayli ustun, Carthage mashhurlik bo'yicha orqada qoladi, lekin maksimal nazoratni beradi.
| Mezon | CocoaPods | SPM | Carthage |
|---|---|---|---|
| Konfiguratsiya tili | Ruby DSL | Package.swift (Swift) | Cartfile |
| Xcode bilan integratsiya | Workspace orqali | O'rnatilgan | Qo'lda (xcframeworks) |
| Kutubxonalar soni | 100 000+ | ~65 000 | ~20 000 |
| Tranzitiv bog'liqliklar | Avtomatik | Avtomatik | Qo'lda |
| Resurslarni qo'llab-quvvatlash | Ha (resource bundles) | Ha (Resources) | Yo'q |
| O'rnatish tezligi | O'rtacha | Tez | Tez |
| Versiyalash | Gemfile.lock | Package.resolved | Cartfile.resolved |
CocoaPods kutubxonalar bilan maksimal muvofiqlik kerak bo'lgan loyihalar uchun tanlov bo'lib qolmoqda (ko'plab eski kutubxonalar faqat CocoaPods orqali mavjud). SPM yangi loyihalar uchun tavsiya etiladi — u Xcode ichiga o'rnatilgan, qo'shimcha vositalarni o'rnatishni talab qilmaydi va Apple tomonidan qo'llab-quvvatlanadi. Carthage kamdan-kam ishlatiladi, asosan Xcode konfiguratsiyasiga minimal aralashuv talab qilinadigan loyihalarda. 2024 yildan boshlab Apple SPM ni faol rivojlantirmoqda va ko'plab mashhur kutubxonalar (Alamofire, Firebase, SnapKit) uni CocoaPods bilan teng darajada qo'llab-quvvatlamoqda.
CocoaPods dan SPM ga migratsiya pod deintegrate (CocoaPods ni olib tashlash) va Xcode da File → Add Package Dependencies orqali paketlarni qo'shish bilan amalga oshiriladi. Asosiy qiyinchiliklar: resursli kutubxonalar (shriftlar, tasvirlar, storyboard) xatti-harakatida farq qilishi mumkin va CocoaPods plaginlari (masalan, kod yaratish uchun) SPM da o'xshashiga ega emas. CocoaPods ga xos imkoniyatlar talab qilinadigan loyihalar uchun CocoaPods ni saqlab qolish tavsiya etiladi: kod generatsiyasi, resurs paketlari va post_install hook lari orqali moslashtirilgan qurilish bosqichlari.
CocoaPods — barqaror vosita, ammo ishlab chiqaruvchilar vaqti-vaqti bilan odatiy muammolarga duch kelishadi. Ularning aksariyati Ruby versiyalari, kesh yoki bog'liqlik ziddiyatlari bilan bog'liq. Quyida eng ko'p uchraydigan stsenariylar va ularni hal qilish usullari keltirilgan.
«The sandbox is not in sync with the Podfile.lock» xatosi — pod install ni ishga tushirishdan oldin repozitoriyada Podfile.lock o'zgarganda yuzaga keladi. Yechim: pod install yoki pod deintegrate && pod install bajarish. CI muhitlari uchun qurilish skriptiga pod install qo'shish tavsiya etiladi. Yana bir tez-tez uchraydigan sabab — ishlab chiqaruvchilar orasida CocoaPods versiyasidagi farq: barcha mashinalarda pod --version ni tekshiring.
Specs reestrini yangilashda xato — odatda tarmoq muammolari yoki eskirgan Git repozitoriyasi tufayli yuzaga keladi. Yechim: pod repo update --verbose tafsilotlarni ko'rsatadi. Agar Specs buzilgan bo'lsa: rm -rf ~/.cocoapods/repos/master && pod repo add master https://github.com/CocoaPods/Specs.git. Sekin internetda CDN dan foydalanish mumkin — CocoaPods 1.8+ dan boshlab standart yoqilgan.
Duplicate symbols xatosi — bir kutubxona ikki marta ulanganda yoki podlar o'rtasida simvollar ziddiyatida yuzaga keladi. Yechim: Podfile ni takrorlash uchun tekshiring, simvollarni izolyatsiya qilish uchun use_frameworks! :linkage => :static dan foydalaning. Agar muammo kutubxonada bo'lsa — muallifga xabar bering. Ba'zan Derived Data ni tozalash va Xcode ni qayta ishga tushirish yordam beradi.
CocoaPods Apple Silicon Mac da o'rnatilmaydi — macOS da oldindan o'rnatilgan Ruby Rosetta 2 orqali ishlaydi, bu kompilyatsiya xatolariga olib keladi. Yechim: mahalliy ARM64 arxitekturasi uchun rbenv yoki asdf orqali Ruby o'rnating. Muqobil — Homebrew dan foydalaning: brew install cocoapods avtomatik ravishda ARM64 uchun kompilyatsiya qiladi. Agar gems x86_64 uchun o'rnatilgan bo'lsa, arch -arm64 sudo gem install cocoapods buyrug'i muammoni hal qiladi.
Podlarni sekin o'rnatish — katta loyihalarda pod install daqiqalar olishi mumkin. Yechim: diagnostika uchun --verbose ni yoqing. Agar Specs allaqachon dolzarb bo'lsa, --no-repo-update dan foydalaning. CI serverlar uchun Pods/ va ~/.cocoapods papkalarini keshlang. CocoaPods 1.12+ da install! 'cocoapods', :parallel_download => true orqali parallel yuklab olish qo'shilgan.
| Muammo | Sabab | Yechim |
|---|---|---|
| Sandbox not in sync | Podfile.lock o'zgarishi | pod install |
| Specs repozitoriy buzilgan | Git xatosi | Specs ni qayta o'rnatish |
| Duplicate symbols | Kutubxona ziddiyati | use_frameworks! :static |
| Apple Silicon xatosi | Rosetta ostida Ruby | Homebrew / rbenv ARM |
| Sekin o'rnatish | Katta bog'liqlik grafigi | Parallel download, kesh |
Tez-tez so'raladigan savollar
CocoaPods — Apple loyihalari (iOS, macOS, watchOS, tvOS) uchun bog'liqlik menejeri. U uchinchi tomon kutubxonalarini yuklab olish, sozlash va integratsiya qilishni avtomatlashtiradi. Fayllarni qo'lda nusxalash va kompilyator bayroqlarini sozlash o'rniga, Podfile ga pod 'LibraryName' qatorini qo'shish va pod install ni ishga tushirish kifoya.
Podfile — ishlab chiqaruvchi tomonidan yoziladigan konfiguratsiya fayli: unda kutubxona nomlari va versiya operatorlari (~> 5.9, >= 2.0, aniq versiya) ko'rsatilgan. Podfile.lock avtomatik ravishda yaratiladi va barcha o'rnatilgan bog'liqliklarning aniq versiyalarini qayd qiladi. Podfile.lock Git da saqlanishi kerak — u jamoa a'zolarining bir xil versiyalardan foydalanishini kafolatlaydi.
Loyiha papkasidan terminalda pod deintegrate ni bajaring — CocoaPods .xcworkspace, konfiguratsiya fayllari va qurilish sozlamalarini o'chiradi. Keyin .xcodeproj ni Xcode da oching, File → Add Package Dependencies ga o'ting va kerakli paketlarni qo'shing. SPM qo'shimcha o'rnatishni talab qilmaydigan o'rnatilgan Apple yechimidir.
Ha, CocoaPods va SPM bir loyihada birga mavjud bo'lishi mumkin. CocoaPods bog'liqliklarning bir qismini .xcworkspace orqali boshqaradi, SPM — Xcode Package Dependencies orqali. Biroq, tranzitiv bog'liqlik ziddiyatlari mumkin: agar ikkala tizim bir kutubxonaning turli versiyalarini ulashga harakat qilsa, qurilish xato beradi. Barcha bog'liqliklar uchun bitta menejerdan foydalanish tavsiya etiladi.
Kutubxona tavsifi bilan .podspec faylini yarating. Lokal validatsiya uchun pod spec lint ni bajaring. pod trunk register email name orqali ro'yxatdan o'ting. Spec ni pod trunk push YourLib.podspec orqali nashr qiling. CocoaPods avtomatik ravishda kutubxonangizni markaziy Specs reestriga qo'shadi — nashrdan so'ng barcha ishlab chiqaruvchilar pod 'YourLib' orqali unga kirishlari mumkin.
Xulosa
pod trunk push orqali reestrda nashr qilish uchun spetsifikatsiya fayligem install cocoapods orqali, sozlash — pod init va pod install orqali amalga oshiriladipod install, keshni tozalash va freymvorklarni sozlash orqali hal qilinadiBiz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.