Làm thế nào để loại bỏ CocoaPods khỏi một dự án?


472

Cách đúng đắn để loại bỏ Cốc Cốc khỏi dự án là gì? Tôi muốn loại bỏ toàn bộ Cốc Cốc. Do một số hạn chế do khách hàng của tôi áp đặt, tôi không thể sử dụng nó. Tôi cần phải có một xcodeproj thay vì xcworkspace.


12
Và hãy nhớ: lần sau sử dụng git và chỉ cần cuộn lại!
Dan Rosenstark

35
Chạypod deintegrate
onmyway133

Câu trả lời:


1031

Có thể loại bỏ CocoaPods khỏi một dự án, nhưng hiện không được CLI tự động hóa. Điều đầu tiên, nếu vấn đề duy nhất bạn gặp phải là không thể sử dụng thì xcworkspacebạn có thể sử dụng CocoaPods chỉ xcodeprojbằng s bằng cách sử dụng --no-integratecờ sẽ tạo ra Pods.xcodeprojnhưng không phải là không gian làm việc. Sau đó, bạn có thể thêm điều này xcodeprojnhư là một tiểu dự án cho chính của bạn xcodeproj.

Nếu bạn thực sự muốn xóa tất cả tích hợp của Cốc Cốc, bạn cần thực hiện một số điều:

LƯU Ý chỉnh sửa một số trong những điều này nếu được thực hiện không chính xác có thể phá vỡ dự án chính của bạn. Tôi đặc biệt khuyến khích bạn kiểm tra các dự án của bạn trong kiểm soát nguồn chỉ trong trường hợp. Ngoài ra, các hướng dẫn này dành cho phiên bản CocoaPods 0.39.0, chúng có thể thay đổi với các phiên bản mới.

  1. Xóa các tệp độc lập ( Podfile Podfile.lockPodsthư mục của bạn )
  2. Xóa cái đã tạo xcworkspace
  3. Mở xcodeprojtệp của bạn , xóa các tham chiếu đến Pods.xcconfiglibPods.a(trong Frameworksnhóm)
  4. Theo bạn Build Phasesxóa Copy Pods Resources, Embed Pods FrameworksCheck Pods Manifest.lockcác giai đoạn.
  5. Điều này có vẻ hiển nhiên nhưng bạn sẽ cần tích hợp thư viện của bên thứ 3 theo cách khác hoặc xóa tham chiếu đến chúng khỏi mã của bạn.

Sau những bước đó, bạn nên thiết lập một xcodeproj tồn tại trước khi bạn tích hợp Cốc Cốc. Nếu tôi bỏ lỡ bất cứ điều gì hãy cho tôi biết và tôi sẽ chỉnh sửa nó.

Ngoài ra, chúng tôi luôn tìm kiếm các đề xuất về cách cải thiện Cốc Cốc vì vậy nếu bạn gặp sự cố, vui lòng gửi chúng trong trình theo dõi vấn đề của chúng tôi để chúng tôi có thể đưa ra cách khắc phục chúng!

BIÊN TẬP

Như được thể hiện bởi Jack Wu trong các bình luận, có một plugin CacaoPods của bên thứ ba có thể tự động hóa các bước này cho bạn. Nó có thể được tìm thấy ở đây . Lưu ý rằng đó là một plugin của bên thứ ba và có thể không phải lúc nào cũng được cập nhật khi có Cốc Cốc. Cũng lưu ý rằng nó được tạo bởi một thành viên nhóm nòng cốt của Cốc Cốc để vấn đề không phải là vấn đề.


Cảm ơn Chúa cho bài viết này. Tôi đã gặp rắc rối bởi cơn ác mộng này ... stackoverflow.com/questions/9863836/l Library-not-find- for- lods và bây giờ tôi phải xóa CP. Cảm ơn
Fattie

1
(Trong trường hợp của tôi - March 2014 - nó liên quan đến toàn bộ "Parse / Facebook liraries / cài đặt kiến trúc" điên rồ có thể giúp đỡ một ai đó đọc Một lần nữa cảm ơn...)
Fattie

Tôi sắp làm điều này và lý do là nó thường xuyên cần phải biên dịch lại tất cả các dự án Pod mặc dù không ai trong số chúng bị chạm, vì vậy nó đã làm chậm đáng kể thời gian xây dựng của tôi.
theLastNightTrain

24
Sẽ để lại điều này ở đây vì nó làm việc rất tốt cho tôi: github.com/kylef/cocoapods-deintegrate
Jack

1
Nếu bất cứ ai thắc mắc tại sao một triệu cảnh báo lại xuất hiện trong Xcode, thì đó là vì bạn cần phải thực hiện các thay đổi của mình trên git / svn
Achintya Ashok

352

pod deintegratepod clean là hai lệnh được chỉ định để loại bỏ CocoaPod khỏi dự án / repo của bạn.

Dưới đây là bộ lệnh hoàn chỉnh:

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

Giải pháp ban đầu được tìm thấy ở đây: https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

Tài liệu về Cốc Cốc trên pod deintegrate: https://guides.cocoapods.org/terminal/commands.html#pod_deintegrate


3
cảm ơn, làm việc (gần) cho tôi Sau những lệnh này, tôi gặp lỗi liên kết trong quá trình biên dịch. Giải pháp là xóa "khung Pods" khỏi Mục tiêu-> Xây dựng giai đoạn-> Liên kết nhị phân với thư viện
uldo

Kể từ phiên bản 1.0.0beta8 Cocoapods tạo ra các Pha xây dựng kỳ lạ với tên như sau: 📦 Kiểm tra Pods Manifest.lock. Kiểm tra nếu chúng được loại bỏ sau khi khử.
Timur Bernikovich

Xin lưu ý rằng nếu bạn đang sử dụng máy chưa cài đặt cocoapod, bạn sẽ cần cài đặt cocoapod bằng đá quý trước khi lệnh pod hoạt động. Điều này có thể xảy ra nếu bạn khôi phục hoặc sao chép dự án lên một hệ thống mới.
NoelHunter

65

Để loại bỏ hoàn toàn các nhóm khỏi một dự án, trước tiên bạn cần cài đặt hai điều ... những điều sau đây (Giả sử bạn đã cài đặt các nhóm ca cao trong hệ thống của mình.) ...

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

Cài đặt

  1. Cocoapods-Deintegrate Plugin

    Sử dụng lệnh sau trên thiết bị đầu cuối của bạn để cài đặt nó.

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

    Sử dụng lệnh sau trên thiết bị đầu cuối của bạn để cài đặt nó.

    sudo gem install cocoapods-clean

Sử dụng

Trước hết hãy goto thư mục dự án của bạn bằng cách sử dụng lệnh như bình thường như ..

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

Bây giờ sử dụng hai plugin đó để loại bỏ nó hoàn toàn như sau ..

  1. Cocoapods-Deintegrate Plugin

    Sử dụng lệnh sau đây trên thiết bị đầu cuối của bạn để khử các nhóm từ dự án của bạn trước.

     pod deintegrate

Khử mùi Pods

  1. Cocoapods-Clean Plugin

    Sau khi hủy nhóm từ dự án của bạn, hãy sử dụng lệnh sau trên thiết bị đầu cuối của bạn để làm sạch hoàn toàn.

     pod clean

    Sau khi hoàn thành các nhiệm vụ trên, Podfile vẫn còn trong thư mục dự án của bạn..Chỉ cần xóa thủ công hoặc sử dụng lệnh sau trên thiết bị đầu cuối ..

     rm Podfile

Đó là ... Bây giờ bạn có dự án của bạn miễn phí từ pods ... Đã làm sạch.

Loại bỏ Cocoapods khỏi hệ thống.

Bất kỳ cách nào hãy thử sử dụng lệnh sau trên thiết bị đầu cuối của bạn để gỡ cài đặt / gỡ bỏ coca-pods khỏi hệ thống của bạn.

sudo gem uninstall cocoapods

Nó sẽ tự động loại bỏ coca-pods.

Cảm ơn. Hy vọng điều này sẽ giúp.


5
Ái chà! pod clean xóa không gian làm việc của bạn , ngay cả khi bạn có các dự án khác trong đó! Hãy cẩn thận!

1
@charl Trong trường hợp làm sạch các nhóm từ dự án duy nhất của bạn, bạn phải xóa không gian làm việc ... nhưng rõ ràng phương pháp này không áp dụng cho nhiều dự án được liên kết với không gian làm việc duy nhất .... :(
onCompletion

tại chỗ trên!! Chính xác những gì tôi muốn
Vigneshwaran.m

49

Tôi nghĩ rằng có một cách dễ dàng hơn để làm điều đó.

Như đã được chỉnh sửa bởi câu trả lời được chấp nhận, bây giờ bạn có thể sử dụng plugin cocoapods-deintegrate của bên thứ ba , nó đáng tin cậy bởi vì nó được tạo bởi một thành viên nhóm nòng cốt của Cốc Cốc.

Nhưng, vẫn còn một số tệp vẫn còn:

Podfile
Podfile.lock
Workspace

Bạn có thể xóa chúng khỏi dự án của mình một cách thủ công , nhưng cũng có một công cụ khác giúp bạn làm sạch chúng, nhờ cocoapods-clean .

Cuối cùng, công việc gỡ cài đặt vẫn chưa hoàn tất, cocoapods-cleankhông dọn dẹp Podfile, chỉ cần chạy:

rm Podfile

Chúc mừng!

Trước khi loại bỏ, bạn nên đảm bảo bạn có một bản sao lưu dự án của bạn!


1
Vấn đề với deintegrate là nó dựa vào đá quý và ruby, giống như cocoapods. Hiện tại tôi đang tìm cách loại bỏ các nhóm vì những khó khăn với El Capitan và đá quý. Trình gỡ cài đặt phải có sẵn dưới dạng nhị phân độc lập.
nhygy 16/07/2015

Cảm ơn và biết thêm chi tiết ở đây nếu bạn gặp vấn đề sau khi hủy kết nối thành công.
Adam Johns

Cảm ơn đã suôn sẻ khi sử dụng 'cocoapods-deintegrate'
shaikh

46

pod deintegrate

Sau cmd này, không còn dấu vết nào của Cocoapods trong dự án của bạn.

Nhưng không gian làm việc của bạn tham chiếu dự án Pods vẫn còn, bạn cần xóa 3 tệp theo cách thủ công:

xx.xcworkspace
Podifle
Podfile.lock

Sau đó, bạn có thể sử dụng dự án của bạn một lần nữa.

Chúc vui vẻ!

Kiểm tra phiên bản Cốc Cốc = 1.2.0


Nice, cũng đã làm việc ở đây sau khi đã xóa hầu hết mọi thứ bằng tay.
brainray

deintegrate nukes không gian làm việc của bạn. Hãy cẩn thận nếu bạn cần nó.
SafeFastExpressive

1
@mistdon bạn đã cứu bạn lần thứ hai.
Dheeraj D

20

Tôi đã thử tất cả các câu trả lời nhưng nó vẫn không được, cuối cùng tôi đã thử:

pod deintegrate
pod install

mà thực sự đã làm việc!

Có vẻ như nó cần phải xóa tất cả các tập lệnh pod khỏi các giai đoạn xây dựng của bạn và thêm lại chúng để nó hoạt động, ít nhất là trong trường hợp của tôi.


Đặc biệt hữu ích, nếu bạn đổi tên một dự án với các nhóm được tích hợp.
bisma

12

Câu trả lời của Keith rất hay - Tôi chỉ muốn chỉ ra rằng vì Cocoapods 0.36 đang bắt đầu hỗ trợ Dynamic Frameworks , nếu bạn đang sử dụng 'use_frameworks!' trong 'Podfile' của bạn và bạn muốn xóa Cocoapods, bạn phải làm điều này:

  • Đang trong giai đoạn Build Phasesxóa Embed Pods Frameworks.

Đúng. Nếu bạn không làm điều này, bạn sẽ nhận được lỗi xây dựng.
Zia

Nếu có bất kỳ tập tin nào khác xử lý Podsbên trong cũng Build Phases xóa chúng.
luckyging3r

8

Có thể có hai khía cạnh nhà phát triển có thể phải đối mặt.

  • Hoặc anh ta muốn loại bỏ hoàn toàn pods khỏi dự án
  • nhà phát triển muốn gỡ cài đặt khung cụ thể từ dự án từ nhóm.

Trong trường hợp đầu tiên, bạn phải sử dụng 'pod deintegrate' và làm theo một số bước được đề cập trong các câu trả lời ở trên.

Đối với trường hợp thứ hai, đó là nếu bạn muốn gỡ cài đặt bất kỳ khung cụ thể nào được cài đặt, có một cách rất đơn giản có sẵn trong tệp pod của bạn, chỉ cần nhận xét khung mà bạn muốn gỡ cài đặt và chạy lệnh cài đặt 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

Ở đây tôi muốn gỡ cài đặt các khung facebook và phân tích cú pháp (được cài đặt bằng pod) và không phải iCarousel, đó là lý do tại sao tôi đã cập nhật tệp pod của mình như trên.

Bây giờ nếu tôi chạy pod install, nó sẽ giữ iCarousel như trong dự án của tôi và sẽ xóa facebook và phân tích cú pháp.


4
  1. Việc đầu tiên mà bạn sẽ cần phải làm là tháo Podfile, Podfile.lockthì Podsthư mục, và không gian làm việc được tạo ra.
  2. Tiếp theo, trong phần .xcodeproj, loại bỏ các tham chiếu đến các Pods.xcconfigtệp và libPods.atệp.
  3. Trong tab dự án Build Ph Phase, xóa phần Kiểm tra Podif Manifest.lock (mở), Sao chép phần Tài nguyên Pods (phía dưới) và Nhúng Tài nguyên Pod (phía dưới).
  4. Loại bỏ Pods.framework.

Điều duy nhất bạn có thể muốn làm là bao gồm một số thư viện mà bạn đã sử dụng trước đó. Bạn có thể làm điều này bằng cách kéo bất kỳ thư mục nào trong các thư mục nhóm vào dự án của bạn (tôi thích đặt chúng vào thư mục Tệp hỗ trợ của mình).

Nó làm việc cho tôi.


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

Sau khi thoát khỏi tất cả các cocoapodsgem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna


2

Xóa tất cả các tệp pod liên quan:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

và trong Trình điều hướng dự án:

Nhấp vào tên dự án (biểu tượng màu xanh) -> Mục tiêu (*) -> Xây dựng giai đoạn -> Xóa "[CP] Kiểm tra Pods manifest.lock" (nhấp vào "x")

(*) Nhấp vào tên dự án, bạn có thể phải nhấp vào "Hiển thị danh sách dự án và mục tiêu" để xem thanh bên trước.


Tôi cũng đã xóa thư mục "Pods" vì tôi chỉ sử dụng một thư mục duy nhất, nếu không thì chỉ xóa thư mục "NameOfThePod" trong thư mục "Pods".
Cháu

1

Tôi sẽ viết những gì iv thực hiện rất ngắn gọn (để xóa bất kỳ Cốc Cốc nào khỏi dự án của tôi) ..

  1. xóa mọi thư mục đã thêm (khung, Pods, ...)
  2. xóa bất kỳ tập tin đã thêm nào
  3. chỉ cần để lại những cái ban đầu của bạn (DỰ ÁN, DỰ ÁN, DỰ ÁN.xcodeproj)
  4. xóa tham chiếu khung khỏi dự án trên xcode

Để xóa tham chiếu khung khỏi xcode:

  1. Sử dụng Trình điều hướng dự án
  2. Chọn dự án
  3. Chọn mục tiêu dự án
  4. Chọn Build Phase từ các tùy chọn hàng đầu
  5. để lại các nhóm mặc định (Phụ thuộc mục tiêu, Nguồn biên dịch, Nhị phân được liên kết với Thư viện, Sao chép tài nguyên gói) và xóa bất kỳ nhóm nào khác


1

Nếu bạn chỉ muốn xóa một nhóm và giữ các nhóm khác mà bạn có thể đã cài đặt, hãy mở podfile trong thư mục ứng dụng của bạn và xóa cái bạn muốn xóa. Sau đó điều hướng đến thư mục ứng dụng của bạn bằng thiết bị đầu cuối và gõ:

pod update

Điều này sẽ loại bỏ pod bạn đã loại bỏ khỏi podfile. Bạn sẽ thấy nó đã bị xóa trong terminal:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Lưu ý rằng phương pháp này cũng sẽ kéo bất kỳ bản cập nhật nào cho các nhóm khác trong nhóm tệp của bạn. Bạn có thể hoặc không muốn điều đó.


Theo tài liệu, bạn nên sử dụng pod installđể thêm / xóa nhóm. Điều này đặc biệt để tránh cập nhật như bạn đã nói ở đây. Bạn có thể đọc thêm về 'Hướng dẫn' của họ về chính chủ đề này ... guide.cocoapods.org/USE/pod-install-vs-update.html
Mark A. Donohoe

0

Sử dụng các lệnh của Terminal (Đừng quên sử dụng sudo ở đầu dòng mới):

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)

Gỡ cài đặt danh sách từng cái một như thế này:

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

Tôi đã có thể loại bỏ các nhóm của mình trong dự án bằng ứng dụng CocoaPods (Phiên bản 1.5.2). Sau đó tôi chỉ xóa các tệp podfile, podfile.lock và xcworkspace trong thư mục.



0

Tôi không nghĩ rằng bạn cần phải hủy bỏ nữa. Tôi đã có thể làm điều đó với lệnh sau trong terminal:

cài đặt pod

và nó tự động loại bỏ những cái không còn trong podfile

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.