프로젝트에서 CocoaPods를 제거하는 방법?


471

프로젝트에서 CocoaPod를 제거하는 올바른 방법은 무엇입니까? CocoaPod 전체를 제거하고 싶습니다. 내 고객이 부과 한 일부 제한으로 인해 사용할 수 없습니다. xcworkspace 대신 하나의 xcodeproj가 필요합니다.


12
그리고 기억하십시오 : 다음에 git을 사용하고 그냥 롤백하십시오!
Dan Rosenstark

35
실행pod deintegrate
onmyway133

답변:


1030

프로젝트에서 CocoaPod를 제거 할 수 있지만 현재 CLI에 의해 자동화되지 않았습니다. 첫 번째로, 유일한 문제 xcworkspace는 사용할 수 없는 경우 작업 공간 은 아니지만 생성하는 플래그를 xcodeproj사용하여 CocoaPod를 s 와 함께 사용할 수 있습니다 . 그런 다음 이것을 메인에 하위 프로젝트로 추가 할 수 있습니다 .--no-integratePods.xcodeprojxcodeprojxcodeproj

모든 CocoaPods 통합을 정말로 제거하려면 몇 가지 작업을 수행해야합니다.

참고 잘못 수행 한 경우이 중 일부를 편집하면 기본 프로젝트가 중단 될 수 있습니다. 만일을 대비하여 프로젝트를 소스 제어로 확인하는 것이 좋습니다. 또한 이러한 지침은 CocoaPods 버전에 대한 것이며 0.39.0새 버전으로 변경 될 수 있습니다.

  1. 독립형 파일 Podfile Podfile.lockPods디렉토리 삭제
  2. 생성 된 삭제 xcworkspace
  3. 당신 열고 xcodeproj, 파일에 대한 참조를 제거 Pods.xcconfig하고 libPods.a합니다 (의 Frameworks그룹)
  4. 당신의 아래에서 Build Phases삭제 Copy Pods Resources, Embed Pods FrameworksCheck Pods Manifest.lock단계.
  5. 이것은 명백해 보이지만 타사 라이브러리를 다른 방법으로 통합하거나 코드에서 해당 라이브러리에 대한 참조를 제거해야합니다.

이러한 단계 후에는 xcodeprojCocoaPod를 통합하기 전에 존재 하는 단일 항목으로 설정해야합니다 . 내가 놓친 것이 있으면 알려 주시면 수정하겠습니다.

또한 항상 CocoaPods를 개선하는 방법에 대한 제안을 찾고 있으므로 문제가있는 경우 문제 추적기 에 제출하여 문제 를 해결하는 방법을 제안하십시오!

편집하다

의견에 Jack Wu가 제시 한 것처럼 타사 CocoaPods 플러그인이 있어이 단계를 자동화 할 수 있습니다. 여기 에서 찾을 수 있습니다 . 이 플러그인은 타사 플러그인이므로 CocoaPods가 업데이트 될 때 항상 업데이트되는 것은 아닙니다. 또한 CocoaPods 핵심 팀원이 작성하므로 문제는 문제가되지 않습니다.


이 게시물에 대해 하나님 께 감사드립니다. 나는이 악몽에 얽매여 ... stackoverflow.com/questions/9863836/library-not-found-for-lpods 지금 CP를 제거해야했습니다. 감사합니다
Fattie

1
(제 경우-2014 년 3 월-전체 "Parse / Facebook 라이브러리 / 아키텍처 설정"광기와 관련이 있습니다. 누군가 읽는 데 도움이 될 수 있습니다. 다시 한 번 감사드립니다.)
Fattie

나는이 작업을하려고하고 있으며 그 이유는 모든 포드 프로젝트를 건드리지 않았지만 정기적으로 모든 포드 프로젝트를 다시 컴파일해야하기 때문에 빌드 시간이 상당히 느려졌습니다.
theLastNightTrain

24
나를 위해 큰 일을하기 때문에 여기를 떠나 간다 : github.com/kylef/cocoapods-deintegrate

1
Xcode에서 왜 백만 개의 경고가
나타나는지 궁금한 사람

351

pod deintegratepod clean프로젝트 / REPO에서 CocoaPod을 제거하는 명령이 지정되어 있습니다.

다음은 전체 명령 세트입니다.

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

원래 솔루션은 여기에서 찾을 수 있습니다 : https://medium.com/@icanhazedit/remove-uninstall-deintegrate-cocoapods-from-your-xcode-ios-project-c4621cee5e42#.wd00fj2e5

CocoaPod 설명서 pod deintegrate: https://guides.cocoapods.org/terminal/commands.html#pod_deintegrate


3
고마워, (거의) 나를 위해 일한다. 이 명령 후에 컴파일하는 동안 링커 오류가 발생했습니다. 해결책은 대상-> 빌드 단계-> 라이브러리와 바이너리 연결
uldo

버전 1.0.0beta8부터 Cocoapods는 다음과 같은 이름으로 이상한 빌드 단계를 만듭니다. 📦 Pods Manifest.lock을 확인합니다. 분해 후 제거되었는지 확인하십시오.
Timur Bernikovich

cocoapods가 설치되어 있지 않은 머신에 있다면, pod 명령이 작동하기 전에 gemapoco cocoapods를 설치해야합니다. 프로젝트를 새 시스템으로 복원하거나 복사하면 이런 일이 발생할 수 있습니다.
NoelHunter

65

프로젝트에서 포드를 완전히 제거하려면 먼저 두 가지를 설치해야합니다. 다음은 다음과 같습니다 (시스템에 이미 코코아 포드가 설치되어 있다고 가정).

  1. Cocoapods-Deintegrate 플러그인
  2. Cocoapods-Clean 플러그인

설치

  1. Cocoapods-Deintegrate 플러그인

    터미널에서 다음 명령을 사용하여 설치하십시오.

    sudo gem install cocoapods-deintegrate
  2. Cocoapods-Clean 플러그인

    터미널에서 다음 명령을 사용하여 설치하십시오.

    sudo gem install cocoapods-clean

용법

우선 다음과 같은 일반적인 명령을 사용하여 프로젝트 폴더로 이동하십시오.

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

이제이 두 플러그인을 사용하여 다음과 같이 완전히 제거하십시오.

  1. Cocoapods-Deintegrate 플러그인

    터미널에서 다음 명령을 사용하여 프로젝트에서 포드를 분리하십시오.

     pod deintegrate

깍지 포드

  1. Cocoapods-Clean 플러그인

    프로젝트에서 포드를 분리 한 후 터미널에서 다음 명령을 사용하여 완전히 청소하십시오.

     pod clean

    위 작업을 완료 한 후에도 여전히 Podfile이 프로젝트 디렉토리에 남아 있어야합니다. 수동으로 삭제하거나 터미널에서 다음 명령을 사용하십시오.

     rm Podfile

그게 다야 ... 이제 프로젝트에 포드가 없어야합니다.

시스템에서 Cocoapod 제거

어떤 방법 으로든 터미널에서 다음 명령을 사용하여 시스템에서 코카 포드를 제거 / 제거하십시오.

sudo gem uninstall cocoapods

코카 포드를 자동으로 제거합니다.

감사. 이것이 도움이 되었기를 바랍니다.


5
우와! pod clean 작업 공간 에 다른 프로젝트가 있더라도 작업 공간을 삭제합니다 ! 조심해!

1
@charl 단일 프로젝트에서 포드를 청소하는 경우 작업 영역을 지워야합니다. 그러나 단일 작업 영역과 연관된 여러 프로젝트에는 해당 방법이 적용되지 않습니다 .... :(
onCompletion

에 딱 맞다!! 내가 원하는 것
Vigneshwaran.m

49

더 쉬운 방법이 있다고 생각합니다.

허용 된 답변으로 편집 한 것처럼 이제 타사 플러그인 cocoapods-deintegrate를 사용할 수 있으며 CocoaPods 핵심 팀 구성원이 만들었 기 때문에 신뢰할 수 있습니다.

그러나 여전히 일부 파일이 남아 있습니다.

Podfile
Podfile.lock
Workspace

프로젝트에서 수동으로 제거 할 수 있지만 cocoapods-clean 덕분에 청소를 도와주는 다른 도구도 있습니다 .

마지막으로, 제거 작업이 아직 완료 cocoapods-clean되지 않았습니다.를 정리하지 말고 Podfile다음을 실행하십시오.

rm Podfile

건배!

제거하기 전에 프로젝트를 백업해야합니다!


1
붕해 문제는 코코아 포드처럼 보석과 루비에 의존한다는 점에서 문제가된다. 현재 엘 캐피 탄과 보석의 어려움으로 인해 포드를 제거하려고합니다. 제거 프로그램은 독립 실행 형 바이너리로 제공되어야합니다.
nheagy

성공적으로 분리 한 후 문제가 발생하면 여기에 감사하고 자세한 내용이 있습니다 .
Adam Johns

부드러운 'cocoapods-deintegrate'를 사용했다 감사합니다
샤이 크

46

pod deintegrate

이 cmd 후에 프로젝트에 Cocoapod의 흔적이 남지 않았습니다.

그러나 포드 프로젝트를 참조하는 작업 영역은 여전히 ​​남아 있으므로 수동으로 3 개 미만의 파일을 제거해야합니다.

xx.xcworkspace
Podifle
Podfile.lock

그런 다음 프로젝트를 다시 사용할 수 있습니다.

즐기세요!

CocoaPod 버전 = 1.2.0 테스트


니스, 이미 손으로 가장 많은 물건을 삭제 한 후 여기에서 일했습니다.
brainray

분해는 작업 공간을 핵화합니다. 필요할 경우 조심하십시오.
SafeFastExpressive

1
@mistdon 당신은 y 생명을 두 번째로 구했습니다.
Dheeraj D

20

나는이 모든 답변을 시도했지만 여전히 빌드되지는 않았지만 결국 시도했습니다.

pod deintegrate
pod install

실제로 효과가있었습니다!

적어도 내 경우에는 빌드 단계에서 모든 포드 스크립트를 제거하고 다시 작동시켜야합니다.


포드가 통합 된 프로젝트의 이름을 변경 한 경우 특히 유용합니다.
bisma

12

Keith의 답변은 훌륭합니다. Cocoapods 0.36Dynamic Frameworks 를 지원하기 시작 했기 때문에 지적하고 싶습니다. 'use_frameworks!'를 사용하는 경우 싶습니다. 'Podfile'에서 Cocoapod를 제거하려면 다음을 수행해야합니다.

  • 아래에서 Build Phases삭제 Embed Pods Frameworks단계입니다.

권리. 이 작업을 수행하지 않으면 빌드 오류가 발생합니다.
Zia

Pods내부에서 처리하는 다른 파일이 있으면 Build Phases 삭제하십시오.
luckyging3r

8

개발자가 직면 할 수있는 두 가지 측면이있을 수 있습니다.

  • 그는 프로젝트에서 포드를 완전히 제거하려고합니다.
  • 개발자는 포드에서 프로젝트의 특정 프레임 워크를 제거하려고합니다.

첫 번째 경우에는 'pod deintegrate'를 사용해야하고 위의 답변에서 언급 된 몇 가지 단계를 수행해야합니다.

두 번째 경우, pod 파일에서 사용 가능한 매우 간단한 방법으로 설치된 특정 프레임 워크를 제거하려면 pod install 명령을 제거하고 실행하려는 프레임 워크를 주석으로 처리하십시오.

# 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

여기서 페이스 북 및 파싱 프레임 워크 (포드를 사용하여 설치)를 제거하고 iCarousel이 아닌 위의 포드 파일을 업데이트 한 이유는 다음과 같습니다.

이제 포드 설치를 실행하면 iCarousel이 프로젝트에 그대로 유지되고 페이스 북을 제거하고 구문 분석합니다.


4
  1. 당신이해야 할 것이라는 점을 우선 제거하다 Podfile, Podfile.lock의를Pods 폴더를 생성 된 작업 공간.
  2. 그런 다음 .xcodeproj에서 Pods.xcconfig파일에 대한 참조를 제거 하고libPods.a 하십시오.
  3. Build Phases 프로젝트 탭에서 Check Pods Manifest.lock 섹션 (열기), Copy Pods Resources 섹션 (아래) 및 Embed Pod Resources (아래)를 삭제하십시오.
  4. 를 제거하십시오 Pods.framework.

당신이하고 싶은 유일한 것은 이전에 사용했던 일부 라이브러리를 포함하는 것입니다. 포드 폴더에있는 폴더를 프로젝트로 드래그하면됩니다 (지원 파일 폴더에 저장하는 것을 선호합니다).

그것은 나를 위해 일했다.


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

gem uninstall cocoapods-deintegrate cocoapods-clean
Onur Tuna


2

관련 포드 파일을 모두 삭제하십시오.

  • xx.xcworkspace
  • 포드 파일
  • Podfile.lock

프로젝트 네비게이터에서 :

프로젝트 이름 (파란색 아이콘)-> 대상 (*)-> 빌드 단계-> "[CP] 포드 확인 manifests.lock"제거 ( "x"클릭)를 클릭하십시오.

(*) 프로젝트 이름을 클릭하면 사이드 바를 먼저 보려면 "프로젝트 및 대상 목록 표시"를 클릭해야 할 수 있습니다.


하나만 사용했기 때문에 "Pods"폴더도 삭제했습니다. 그렇지 않으면 "Pods"폴더 안에있는 "NameOfThePod"폴더 하나만 삭제하십시오.
Neph

1

나는 프로젝트에서 CocoaPod를 삭제하기 위해 iv를 매우 간략하게 작성하려고합니다.

  1. 추가 된 폴더 삭제 (frameworks, Pods, ...)
  2. 추가 된 파일 삭제 (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig 등)
  3. 원래 것만 남겨주세요 (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. xcode의 프로젝트에서 프레임 워크 참조 제거

xcode에서 프레임 워크 참조를 제거하려면 다음을 수행하십시오.

  1. 프로젝트 네비게이터 사용
  2. 프로젝트 선택
  3. 대상 프로젝트 선택
  4. 상단 옵션에서 빌드 단계를 선택하십시오.
  5. 기본 그룹 (대상 종속성, 컴파일 소스, 라이브러리와 링크 된 2 진, 번들 자원 복사)을 그대로두고 다른 그룹을 삭제하십시오.


1

하나의 포드를 제거하고 설치 한 다른 포드를 유지하려면 앱 디렉토리에서 podfile을 열고 제거하려는 포드 파일을 삭제하십시오. 그런 다음 터미널을 사용하여 앱 디렉토리로 이동하고 다음을 입력하십시오.

pod update

그러면 podfile에서 제거한 pod가 제거됩니다. 터미널에서 제거 된 것을 볼 수 있습니다 :

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

이 방법을 사용하면 포드 파일의 다른 포드에 대한 업데이트도 가져올 수 있습니다. 당신은 그것을 원할 수도 있고 원하지 않을 수도 있습니다.


설명서에 따라 pod install포드를 추가 / 제거 할 때 사용해야합니다 . 이것은 당신이 여기에 말한 것처럼 업데이트를 피하기 위해 특별히입니다. 이 주제에 대한 '안내서'에 대한 자세한 내용은 ... guides.cocoapods.org/using/pod-install-vs-update.html
Mark A. Donohoe

0

이 터미널의 명령을 사용하십시오 (새 줄의 시작 부분에 sudo를 사용하는 것을 잊지 마십시오).

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)

다음과 같이 목록을 하나씩 제거하십시오.

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

CocoaPods 앱 (버전 1.5.2)을 사용하여 프로젝트에서 포드를 제거 할 수있었습니다. 나중에 폴더의 podfile, podfile.lock 및 xcworkspace 파일 만 삭제했습니다.



0

더 이상 분해 할 필요가 없다고 생각합니다. 터미널에서 다음 명령으로 할 수있었습니다.

포드 설치

더 이상 podfile에없는 것을 자동으로 제거했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.