Programming

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

procodes 2020. 2. 17. 22:24
반응형

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


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


프로젝트에서 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 핵심 팀원이 작성하므로 문제는 문제가되지 않습니다.


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

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

$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ 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


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

  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

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

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


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

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

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

Podfile
Podfile.lock
Workspace

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

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

rm Podfile

건배!

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


pod deintegrate

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

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

xx.xcworkspace
Podifle
Podfile.lock

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

즐기세요!

CocoaPod 버전 = 1.2.0 테스트


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

pod deintegrate
pod install

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

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


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

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

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

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

첫 번째 경우에는 '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이 프로젝트에 그대로 유지되고 페이스 북을 제거하고 구문 분석합니다.


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

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

그것은 나를 위해 일했다.


작동하지 않으면
1. 프로젝트를 청소하십시오.
2. 파생 된 데이터를 삭제했습니다.

파생 데이터를 삭제하는 방법을 모르는 경우 여기로 이동

Xcode6에서 "파생 데이터 삭제"방법


나는 프로젝트에서 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. 기본 그룹 (대상 종속성, 컴파일 소스, 라이브러리와 링크 된 이진, 번들 자원 복사)을 그대로두고 다른 항목을 삭제하십시오.

  1. 에서 podfile이름을 제거.plist
  2. 포드를 다시 설치하십시오 (포드 설치에이 링크 사용)

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

pod update

포드 파일에서 제거한 포드가 제거됩니다. 터미널에서 제거 된 것을 볼 수 있습니다 :

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

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


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

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

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

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

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


이 터미널의 명령을 사용하십시오 (새 줄의 시작 부분에 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

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


여기에 이미지 설명을 입력하십시오

그림 표현 상세

참고 URL : https://stackoverflow.com/questions/16427421/how-to-remove-cocoapods-from-a-project

반응형