Bagaimana cara menghapus CocoaPods dari suatu proyek?


472

Apa cara yang benar untuk menghapus CocoaPods dari suatu proyek? Saya ingin menghapus seluruh CocoaPod. Karena beberapa batasan yang diberlakukan oleh klien saya, saya tidak dapat menggunakannya. Saya hanya perlu memiliki satu xcodeproj daripada xcworkspace.


12
Dan ingat: lain kali gunakan git dan putar kembali!
Dan Rosenstark

35
Jalankanpod deintegrate
onmyway133

Jawaban:


1031

Menghapus CocoaPods dari suatu proyek dimungkinkan, tetapi saat ini tidak diotomatiskan oleh CLI. Hal pertama, jika satu-satunya masalah yang Anda miliki adalah tidak dapat menggunakan, xcworkspaceAnda dapat menggunakan CocoaPods hanya xcodeprojdengan menggunakan --no-integrateflag yang akan menghasilkan Pods.xcodeprojtetapi tidak ruang kerja. Kemudian Anda dapat menambahkan ini xcodeprojsebagai sub proyek ke utama Anda xcodeproj.

Jika Anda benar-benar ingin menghapus semua integrasi CocoaPods, Anda perlu melakukan beberapa hal:

CATATAN mengedit beberapa hal ini jika dilakukan secara tidak benar dapat merusak proyek utama Anda. Saya sangat menganjurkan Anda untuk memeriksa proyek Anda menjadi kontrol sumber untuk berjaga-jaga. Instruksi ini juga untuk versi CocoaPods 0.39.0, mereka dapat berubah dengan versi baru.

  1. Hapus file mandiri ( Podfile Podfile.lockdan Podsdirektori Anda )
  2. Hapus yang dihasilkan xcworkspace
  3. Buka xcodeprojfile Anda , hapus referensi ke Pods.xcconfigdan libPods.a(dalam Frameworksgrup)
  4. Di bawah Anda Build Phasesmenghapus Copy Pods Resources, Embed Pods Frameworksdan Check Pods Manifest.lockfase.
  5. Ini mungkin tampak jelas tetapi Anda harus mengintegrasikan perpustakaan pihak ke-3 dengan cara lain atau menghapus referensi ke mereka dari kode Anda.

Setelah langkah-langkah itu Anda harus mengatur dengan satu xcodeprojyang ada sebelum Anda mengintegrasikan CocoaPods. Jika saya melewatkan sesuatu, beri tahu saya dan saya akan mengeditnya.

Kami juga selalu mencari saran untuk meningkatkan CocoaPods jadi jika Anda memiliki masalah, silakan kirimkan ke pelacak masalah kami sehingga kami dapat menemukan cara untuk memperbaikinya!

EDIT

Seperti yang ditunjukkan oleh Jack Wu di komentar ada plugin CocoaPods pihak ketiga yang dapat mengotomatiskan langkah-langkah ini untuk Anda. Itu dapat ditemukan di sini . Perhatikan bahwa ini adalah plugin pihak ketiga dan mungkin tidak selalu diperbarui saat CocoaPods. Perhatikan juga bahwa itu dibuat oleh anggota tim inti CocoaPods sehingga masalah tidak akan menjadi masalah.


Terima kasih Tuhan untuk posting ini. Saya kacau oleh mimpi buruk ini ... stackoverflow.com/questions/9863836/library-not-found-for-lpods dan saya harus menghapus CP untuk saat ini. Terima kasih
Fattie

1
(Dalam kasus saya - Maret 2014 - ini terkait dengan kegilaan "pengaturan arsitektur / arsitektur Parse / Facebook". Mungkin membantu seseorang membaca. Sekali lagi terima kasih.)
Fattie

Saya akan melakukan ini dan alasannya adalah karena secara teratur perlu mengkompilasi ulang semua proyek Pod meskipun tidak ada yang tersentuh, sehingga sangat memperlambat waktu pembuatan saya.
theLastNightTrain

24
Akan meninggalkan ini di sini karena itu bekerja sangat baik untuk saya: github.com/kylef/cocoapods-deintegrate
Jack

1
Jika ada yang bertanya-tanya mengapa sejuta peringatan muncul di Xcode, itu karena Anda perlu melakukan perubahan pada git / svn
Achintya Ashok

353

pod deintegrate dan pod clean dua perintah yang ditunjuk untuk menghapus CocoaPod dari proyek / repo Anda.

Ini adalah seperangkat perintah lengkap:

$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod cache clean --all
$ rm Podfile

Solusi asli ditemukan di sini: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

Dokumentasi CocoaPod di pod deintegrate: https://guides.cocoapods.org/terminal/commands.html#pod_deintegrate


3
terima kasih, bekerja (hampir) untukku. Setelah perintah ini saya mendapat kesalahan linker selama kompilasi. Solusi adalah menghapus "kerangka kerja Pods" dari Target-> Build Phases-> Tautan Biner Dengan Perpustakaan
uldo

Sejak versi 1.0.0beta8 Cocoapods membuat Build Phases aneh dengan nama-nama seperti: 📦 Periksa Pods Manifest.lock. Periksa apakah mereka dihapus setelah hancur.
Timur Bernikovich

Harap dicatat bahwa jika Anda menggunakan mesin yang belum menginstal cocoapod, Anda harus melakukan gem install cocoapods sebelum perintah pod bekerja. Ini dapat terjadi jika Anda memulihkan atau menyalin proyek ke sistem baru.
NoelHunter

65

Untuk menghapus pod sepenuhnya dari suatu proyek, Anda perlu menginstal dua hal terlebih dahulu ... itu adalah sebagai berikut (Dengan asumsi Anda sudah menginstal kakao-pod di sistem Anda.) ...

  1. Plugin Cocoapods-Deintegrate
  2. Plugin Cocoapods-Clean

Instalasi

  1. Plugin Cocoapods-Deintegrate

    Gunakan perintah berikut ini di terminal Anda untuk menginstalnya.

    sudo gem install cocoapods-deintegrate
  2. Plugin Cocoapods-Clean

    Gunakan perintah berikut ini di terminal Anda untuk menginstalnya.

    sudo gem install cocoapods-clean

Pemakaian

Pertama-tama goto folder proyek Anda dengan menggunakan perintah seperti biasa seperti ..

cd (path of the project) //Remove the braces after cd

Sekarang gunakan kedua plugin itu untuk menghapusnya sepenuhnya sebagai berikut ..

  1. Plugin Cocoapods-Deintegrate

    Gunakan perintah berikut ini di terminal Anda untuk terlebih dahulu memisahkan polong dari proyek Anda.

     pod deintegrate

Deintegrating Pods

  1. Plugin Cocoapods-Clean

    Setelah deintegrasi pod dari proyek Anda, gunakan perintah berikut ini di terminal Anda untuk membersihkannya sepenuhnya.

     pod clean

    Setelah menyelesaikan tugas-tugas di atas harus ada Podfile masih tersisa di direktori proyek Anda .. Cukup hapus secara manual atau gunakan perintah berikut ini di terminal ..

     rm Podfile

Itu saja ... Sekarang proyek Anda bebas dari polong ... Dibersihkan.

Menghapus Cocoapods dari sistem.

Cara apa pun mencoba menggunakan perintah berikut di terminal Anda untuk menghapus / menghapus coca-pod dari sistem Anda.

sudo gem uninstall cocoapods

Ini akan menghapus coca-pod secara otomatis.

Terima kasih. Semoga ini bisa membantu.


5
Wah! pod clean menghapus ruang kerja Anda , bahkan jika Anda memiliki proyek lain di dalamnya! Hati-hati!

1
@charl Jika membersihkan pod dari proyek tunggal Anda, Anda harus membersihkan ruang kerja ... tetapi metode ini jelas tidak berlaku untuk beberapa proyek yang terkait dengan ruang kerja tunggal .... :(
onCompletion

tepat !! Persis apa yang saya inginkan
Vigneshwaran.m

49

Saya pikir ada cara yang lebih mudah untuk melakukan itu.

Seperti yang diedit oleh jawaban yang diterima, sekarang Anda dapat menggunakan plugin cocoapods-deintegrate pihak ketiga , ini dapat diandalkan karena dibuat oleh anggota tim inti CocoaPods.

Tapi, masih ada beberapa file yang tersisa:

Podfile
Podfile.lock
Workspace

Anda dapat menghapusnya dari proyek Anda secara manual , tetapi ada juga alat lain untuk membantu Anda membersihkannya, terima kasih cocoapods-clean .

Akhirnya, pekerjaan penghapusan instalasi masih belum selesai, cocoapods-cleanjangan bersihkan Podfile, jalankan saja:

rm Podfile

Bersulang!

Sebelum menghapus Anda harus memastikan Anda memiliki cadangan proyek Anda!


1
Masalahnya dengan deintegrate adalah bahwa itu bergantung pada permata dan ruby, seperti cocoapods. Saat ini saya ingin menghapus polong karena kesulitan dengan El Capitan dan permata. Penghapus instalasi harus tersedia sebagai binari yang berdiri sendiri.
nheagy

Terima kasih dan detail lebih lanjut di sini jika Anda mengalami masalah setelah deintegrate berhasil.
Adam Johns

Terima kasih itu lancar menggunakan 'cocoapods-deintegrate'
shaikh

46

pod deintegrate

Setelah cmd ini, tidak ada jejak Cocoapods tersisa di proyek Anda.

Tetapi ruang kerja Anda yang mereferensikan proyek Pods masih ada, Anda harus menghapus di bawah 3 file secara manual:

xx.xcworkspace
Podifle
Podfile.lock

Maka Anda dapat menggunakan proyek Anda lagi.

Selamat bersenang-senang!

Uji CocoaPod versi = 1.2.0


Bagus, juga berfungsi di sini setelah menghapus sebagian besar barang dengan tangan.
brainray

deintegrate nukes workspace Anda. Hati-hati jika Anda membutuhkannya.
SafeFastExpressive

1
@Mistdon, kamu menyelamatkan hidupmu untuk kedua kalinya.
Dheeraj D

20

Saya mencoba semua jawaban ini tetapi tetap saja tidak berhasil, akhirnya saya mencoba:

pod deintegrate
pod install

yang sebenarnya berhasil!

Sepertinya perlu menghapus semua skrip pod dari fase build Anda dan menambahkannya kembali agar berfungsi, setidaknya dalam kasus saya.


Sangat membantu, jika Anda mengganti nama proyek dengan pod terintegrasi.
bisma

12

Jawaban Keith luar biasa - saya hanya ingin menunjukkan bahwa karena Cocoapods 0,36 mulai mendukung Kerangka Kerja Dinamis , jika Anda menggunakan 'use_frameworks!' di 'Podfile' Anda dan Anda ingin menghapus Cocoapods, Anda harus melakukan ini:

  • Dalam fase Build Phaseshapus Embed Pods Frameworks.

Baik. Jika Anda tidak melakukan ini, Anda akan mendapatkan kesalahan pembuatan.
Zia

Jika ada file lain yang berurusan dengan Podsdalam Build Phases menghapusnya juga.
luckyging3r

8

Mungkin ada dua aspek yang mungkin dihadapi pengembang.

  • Entah dia ingin menghapus pod sepenuhnya dari proyek
  • pengembang ingin menghapus kerangka kerja tertentu dari proyek dari pod.

Pada kasus pertama, Anda harus menggunakan 'pod deintegrate' dan ikuti beberapa langkah yang disebutkan dalam jawaban di atas.

Untuk kasus kedua yaitu jika Anda ingin menghapus kerangka kerja tertentu yang diinstal di sana cara yang sangat sederhana yang tersedia di file pod Anda hanya komentar kerangka kerja yang ingin Anda hapus dan jalankan perintah menginstal pod.

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'ProjectName' do
  # Uncomment this line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

    pod 'iCarousel', '~> 1.8'
#    pod 'Facebook-iOS-SDK', '~> 4.1'
#    pod 'ParseFacebookUtilsV4', '~> 1.11'
#    pod 'Parse', '~> 1.14'


end

Di sini saya ingin menghapus kerangka kerja facebook dan parse (yang diinstal menggunakan pod) dan bukan iCarousel yang mengapa saya memperbarui file pod saya seperti di atas.

Sekarang jika saya menjalankan pod install, itu akan menjaga iCarousel seperti dalam proyek saya dan akan menghapus facebook dan parse.


4
  1. Hal pertama yang Anda perlu lakukan adalah menghapus Podfile, Podfile.lock, yangPods folder, dan ruang kerja yang dihasilkan.
  2. Selanjutnya, di .xcodeproj, hapus referensi ke Pods.xcconfigfile danlibPods.a file.
  3. Di dalam tab proyek Bangun Fase, hapus bagian Periksa Pod Manifest.lock (terbuka), bagian Salin Sumber Daya Pods (bawah) dan Sumberdaya Embed Pod (bawah).
  4. Hapus Pods.framework.

Satu-satunya hal yang mungkin ingin Anda lakukan adalah memasukkan beberapa perpustakaan yang Anda gunakan sebelumnya. Anda dapat melakukan ini dengan hanya memutar folder apa pun yang ada di folder pod ke dalam proyek Anda (saya lebih suka memasukkannya ke folder File Pendukung saya).

Ini berhasil untuk saya.


4
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile

Setelah menyingkirkan semua cocoapodgem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna


2

Hapus semua file pod terkait:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

dan di Navigator Proyek:

Klik pada nama proyek (ikon biru) -> Target (*) -> Bangun Fase -> Hapus "[CP] Periksa Pods manifests.lock" (klik pada "x")

(*) Klik pada nama proyek, Anda mungkin harus mengklik "Tampilkan proyek dan daftar target" untuk melihat bilah samping terlebih dahulu.


Saya juga menghapus folder "Pods" karena saya hanya menggunakan satu saja, kalau tidak hapus saja folder "NameOfThePod" di dalam folder "Pods".
Neph

1

Saya akan menulis apa yang dilakukan iv dengan sangat singkat (untuk menghapus CocoaPods dari proyek saya) ..

  1. hapus folder apa saja yang ditambahkan (frameworks, Pods, ...)
  2. hapus semua file yang ditambahkan (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ...)
  3. tinggalkan saja yang asli (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. hapus referensi kerangka kerja dari proyek pada xcode

Untuk menghapus referensi kerangka kerja dari xcode:

  1. Gunakan Navigator Proyek
  2. Pilih Proyek
  3. Pilih Target PROYEK
  4. Pilih Build Phases dari opsi atas
  5. tinggalkan grup default (Ketergantungan Target, Kompilasi Sumber, Biner Tertaut dengan Perpustakaan, Salin Sumber Daya Bundel) dan hapus yang lain


1

Jika Anda hanya ingin menghapus satu pod dan menyimpan yang lainnya yang mungkin telah Anda instal, buka podfile di direktori aplikasi Anda dan hapus yang Anda ingin hapus. Lalu navigasikan ke direktori aplikasi Anda menggunakan terminal dan ketik:

pod update

Ini akan menghapus pod yang Anda hapus dari podfile. Anda akan melihat itu telah dihapus di terminal:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Perhatikan bahwa metode ini juga akan menarik setiap pembaruan ke pod lain di podfile Anda. Anda mungkin atau mungkin tidak menginginkan itu.


Per dokumentasi, Anda harus menggunakan pod installuntuk menambah / menghapus pod. Ini khusus untuk menghindari pembaruan seperti yang Anda katakan di sini. Anda dapat membaca lebih lanjut tentang 'Panduan' mereka tentang topik ini ... guides.cocoapods.org/using/pod-install-vs-update.html
Mark A. Donohoe

0

Gunakan perintah Terminal ini (Jangan lupa untuk menggunakan sudo di awal baris baru):

open:YourDir YouName$ sudo gem uninstall cocoapods
Password:?
Remove executables:
    pod, sandbox-pod

in addition to the gem? [Yn]  Y
Removing pod
Removing sandbox-pod
Successfully uninstalled cocoapods-1.4.0
open:YourDir YourName$ gem list --local | grep cocoapods
cocoapods-core (1.4.0)
cocoapods-deintegrate (1.0.2)
cocoapods-downloader (1.1.3)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.3.0)
cocoapods-try (1.1.0)

Copot daftar satu per satu seperti ini:

open:YourDir YourName$ sudo gem uninstall cocoapods-core
Successfully uninstalled cocoapods-core-1.4.0
open:YourDir YourName$ sudo gem uninstall cocoapods-trunk
Successfully uninstalled cocoapods-trunk-1.3.0
open:YourDir YourName$ sudo gem uninstall cocoapods-try
Successfully uninstalled cocoapods-try-1.1.0
open:YourDir YourName$ gem list --local | grep cocoapods
open:YourDir YourName$ sudo gem uninstall cocoapods-stats
Successfully uninstalled cocoapods-stats-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-search
Successfully uninstalled cocoapods-search-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-downloader
Successfully uninstalled cocoapods-downloader-1.1.3
open:YourDir YourName$ sudo gem uninstall cocoapods-plugins
Successfully uninstalled cocoapods-plugins-1.0.0
open:YourDir YourName$ gem list --local | grep cocoapods
cocoapods-deintegrate (1.0.2)
open:YourDir YourName$ sudo gem uninstall cocoapods-deintegrate
Successfully uninstalled cocoapods-deintegrate-1.0.2
open:YourDir YourName$ sudo gem uninstall cocoapods-stats
Successfully uninstalled cocoapods-stats-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-search
Successfully uninstalled cocoapods-search-1.0.0
open:YourDir YourName$ sudo gem uninstall cocoapods-downloader
Successfully uninstalled cocoapods-downloader-1.1.3
open:YourDir YourName$ sudo gem uninstall cocoapods-plugins
Successfully uninstalled cocoapods-plugins-1.0.0
open:YourDir YourName$ gem list --local | grep cocoapods
cocoapods-deintegrate (1.0.2)
open:YourDir YourName$ sudo gem uninstall cocoapods-deintegrate
Successfully uninstalled cocoapods-deintegrate-1.0.2

0

Saya dapat menghapus pod saya di proyek menggunakan aplikasi CocoaPods (Versi 1.5.2). Setelah itu saya hanya menghapus file podfile, podfile.lock dan xcworkspace di folder.



0

Saya tidak berpikir Anda perlu melakukan deintegrasi lagi. Saya dapat melakukannya dengan perintah berikut di terminal:

instal pod

dan secara otomatis menghapus yang tidak lagi ada di podfile

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.