จะลบ CocoaPods ออกจากโครงการได้อย่างไร


471

วิธีที่ถูกต้องในการลบ CocoaPods ออกจากโครงการคืออะไร ฉันต้องการลบ CocoaPod ทั้งหมด เนื่องจากข้อ จำกัด บางประการที่กำหนดโดยลูกค้าของฉันฉันไม่สามารถใช้งานได้ ฉันต้องการ xcodeproj เพียงอันเดียวแทนที่จะเป็น xcworkspace


12
และจำไว้ว่าครั้งต่อไปใช้คอมไพล์แล้วย้อนมันกลับมา!
Dan Rosenstark

35
วิ่งpod deintegrate
onmyway133

คำตอบ:


1030

การลบ CocoaPods จากโครงการเป็นไปได้ แต่ในปัจจุบันยังไม่สามารถดำเนินการอัตโนมัติโดย CLI สิ่งแรกถ้าปัญหาเดียวที่คุณมีคือไม่สามารถที่จะใช้xcworkspaceคุณสามารถใช้ CocoaPods มีเพียงxcodeprojs โดยใช้--no-integrateธงซึ่งจะผลิตPods.xcodeprojแต่ไม่พื้นที่ทำงาน จากนั้นคุณสามารถเพิ่มนี้เป็นโครงการย่อยเพื่อหลักของคุณxcodeprojxcodeproj

หากคุณต้องการลบการรวม CocoaPods ทั้งหมดคุณต้องทำบางสิ่ง:

หมายเหตุการแก้ไขสิ่งเหล่านี้หากทำไม่ถูกต้องอาจทำให้โครงการหลักของคุณเสียหาย ฉันขอแนะนำให้คุณตรวจสอบโครงการของคุณในการควบคุมแหล่งที่มาในกรณีที่ ด้วยคำแนะนำเหล่านี้สำหรับรุ่น CocoaPods 0.39.0พวกเขาสามารถเปลี่ยนเป็นเวอร์ชันใหม่ได้

  1. ลบไฟล์แบบสแตนด์อโลน ( Podfile Podfile.lockและPodsไดเรกทอรีของคุณ)
  2. ลบที่สร้างขึ้น xcworkspace
  3. เปิดxcodeprojไฟล์ของคุณลบการอ้างอิงถึงPods.xcconfigและlibPods.a(ในFrameworksกลุ่ม)
  4. ภายใต้การBuild PhasesลบCopy Pods Resources, Embed Pods FrameworksและCheck Pods Manifest.lockเฟสของคุณ
  5. สิ่งนี้อาจดูเหมือนชัดเจน แต่คุณจะต้องรวมห้องสมุดของบุคคลที่สามด้วยวิธีอื่นหรือลบการอ้างอิงถึงพวกเขาจากรหัสของคุณ

หลังจากขั้นตอนเหล่านั้นคุณควรตั้งค่าด้วยสิ่งเดียวxcodeprojที่มีอยู่ก่อนที่คุณจะรวม CocoaPods หากฉันไม่ได้รับอะไรแจ้งให้ฉันทราบและฉันจะแก้ไข

นอกจากนี้เรามักจะมองหาคำแนะนำสำหรับวิธีการปรับปรุง CocoaPods ดังนั้นหากคุณมีปัญหาโปรดส่งพวกเขาในตัวติดตามปัญหาของเราเพื่อให้เราสามารถหาวิธีแก้ไขได้!

แก้ไข

ในฐานะที่แสดงโดยแจ็ควูในความคิดเห็นที่มี CocoaPods บุคคลที่สามปลั๊กอินที่สามารถทำให้ขั้นตอนเหล่านี้สำหรับคุณ มันสามารถพบได้ที่นี่ โปรดทราบว่ามันเป็นปลั๊กอินของบุคคลที่สามและอาจไม่ได้รับการอัปเดตเสมอเมื่อ CocoaPods เป็น นอกจากนี้โปรดทราบว่ามันถูกสร้างขึ้นโดยสมาชิกในทีมหลักของ CocoaPods ดังนั้นปัญหาจะไม่เป็นปัญหา


ขอบคุณพระเจ้าสำหรับโพสต์นี้ ฉันเมาแล้วฝันร้าย ... stackoverflow.com/questions/9863836/library-not-found-for-lpodsและฉันต้องลบ CP ออกก่อน ขอบคุณ
Fattie

1
(ในกรณีของฉัน - มีนาคม 2014 - มันเกี่ยวข้องกับความบ้าคลั่ง "Parse / Facebook / การตั้งค่าสถาปัตยกรรม" ทั้งหมดอาจช่วยให้คนอ่านได้ขอบคุณอีกครั้ง)
Fattie

ฉันกำลังจะทำสิ่งนี้และเหตุผลก็คือมันต้องมีการคอมไพล์โครงการ Pod ใหม่เป็นประจำแม้ว่าจะไม่มีการสัมผัสเลยดังนั้นมันจึงทำให้เวลาการสร้างของฉันช้าลงอย่างมาก
theLastNightTrain

24
จะออกจากที่นี่เพราะมันใช้งานได้ดีสำหรับฉัน: github.com/kylef/cocoapods-deintegrate
Jack

1
หากใครสงสัยว่าทำไมคำเตือนนับล้านปรากฏขึ้นใน Xcode นั่นเป็นเพราะคุณต้องยอมรับการเปลี่ยนแปลงของคุณใน git / svn
Achintya Ashok

351

pod deintegrateและpod cleanเป็นคำสั่งที่กำหนดสองคำสั่งเพื่อลบ CocoaPod จากโครงการ / repo ของคุณ

นี่คือชุดคำสั่งที่สมบูรณ์:

$ 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
ขอบคุณงาน (เกือบ) สำหรับฉัน หลังจากคำสั่งเหล่านี้ฉันได้รับข้อผิดพลาด linker ในระหว่างการรวบรวม วิธีแก้ไขคือการลบ "Pods framework" จาก Targetets-> Build Phases-> Link Binary With Libraries
uldo

ตั้งแต่เวอร์ชัน 1.0.0beta8 Cocoapods สร้าง Build เฟสแปลก ๆ ด้วยชื่อดังกล่าว: 📦ตรวจสอบ Pods Manifest.lock ตรวจสอบว่าพวกเขาจะถูกลบออกหลังจาก deintegrate
Timur Bernikovich

โปรดทราบว่าหากคุณอยู่ในเครื่องที่ไม่ได้ติดตั้ง cocoapods คุณจะต้องทำการติดตั้ง gem cocoapods ก่อนที่คำสั่ง pod จะทำงาน สิ่งนี้อาจเกิดขึ้นได้หากคุณกู้คืนหรือคัดลอกโครงการไปยังระบบใหม่
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

นั่นคือ ... ตอนนี้คุณมีโปรเจกต์ของคุณฟรีจากพ็อด ... ทำความสะอาดแล้ว

การลบ Cocoapods ออกจากระบบ

พยายามใช้คำสั่งต่อไปนี้บนเทอร์มินัลเพื่อถอนการติดตั้ง / ลบ coca-pods ออกจากระบบของคุณ

sudo gem uninstall cocoapods

มันจะลบ coca-pods โดยอัตโนมัติ

ขอบคุณ หวังว่านี่จะช่วยได้


5
โว้ว! pod clean ลบเวิร์กสเปซของคุณแม้ว่าคุณจะมีโครงการอื่นอยู่ในนั้น! ระวัง!

1
@charl ในกรณีที่มีการทำความสะอาดพ็อดจากโปรเจคเดี่ยวของคุณคุณต้องล้างเวิร์กสเปซ ... แต่วิธีการไม่ชัดเจนสำหรับหลายโปรเจ็กต์ที่เกี่ยวข้องกับเวิร์กสเปซเดียว .... :(
onCompletion

จับได้เห็นชัดตรงเผง!! สิ่งที่ฉันต้องการ
Vigneshwaran.m

49

ฉันคิดว่ามีวิธีที่ง่ายกว่าในการทำเช่นนั้น

แก้ไขโดยคำตอบที่ยอมรับตอนนี้คุณสามารถใช้ปลั๊กอินcocoapods-deintegrateของบุคคลที่สามได้อย่างน่าเชื่อถือเพราะมันทำโดยสมาชิกหลักของ CocoaPods

แต่ยังคงมีบางไฟล์อยู่:

Podfile
Podfile.lock
Workspace

คุณสามารถลบออกจากตนเองโครงการของคุณ แต่ยังมีเครื่องมือสำหรับการช่วยให้คุณทำความสะอาดพวกเขาอีกขอบคุณcocoapods ทำความสะอาด

ในที่สุดงานถอนการติดตั้งยังไม่เสร็จสมบูรณ์cocoapods-cleanไม่ต้องล้างPodfileเพียงแค่เรียกใช้:

rm Podfile

ไชโย!

ก่อนที่จะลบคุณควรตรวจสอบให้แน่ใจว่าคุณมีข้อมูลสำรองของโครงการของคุณ!


1
fwiw ปัญหาของ deintegrate ก็คืออาศัยพลอยและทับทิมเช่นเดียวกับ cocoapods ขณะนี้ฉันต้องการลบพ็อดเนื่องจากปัญหากับ El Capitan และอัญมณี โปรแกรมถอนการติดตั้งควรใช้เป็นไบนารีแบบสแตนด์อโลน
nheagy

ขอขอบคุณและรายละเอียดเพิ่มเติมที่นี่หากคุณพบปัญหาหลังจากที่ยกเลิกการจัดสรรที่ประสบความสำเร็จ
Adam Johns

ขอบคุณที่ราบรื่นโดยใช้ 'cocoapods-deintegrate'
Shaikh

46

pod deintegrate

หลังจาก cmd นี้ไม่มีร่องรอยของ Cocoapods เหลืออยู่ในโครงการของคุณ

แต่พื้นที่ทำงานของคุณที่อ้างอิงโครงการ Pod ยังคงอยู่คุณต้องลบไฟล์ด้านล่างด้วยตนเอง 3 ไฟล์:

xx.xcworkspace
Podifle
Podfile.lock

จากนั้นคุณสามารถใช้โครงการของคุณอีกครั้ง

มีความสุข!

ทดสอบ CocoaPod เวอร์ชั่น = 1.2.0


นิสัยดียังทำงานที่นี่หลังจากลบข้อมูลส่วนใหญ่ด้วยมือไปแล้ว
ระดมสมอง

ยกเลิกการรวม nukes พื้นที่ทำงานของคุณ ระวังถ้าคุณจำเป็นต้องใช้มัน
SafeFastExpressive

1
@mistdon คุณช่วยชีวิต y ครั้งที่สอง
Dheeraj

20

ฉันลองคำตอบทั้งหมด แต่ก็ยังไม่สร้างในที่สุดฉันก็ลอง:

pod deintegrate
pod install

ซึ่งใช้งานได้จริง!

มันต้องการที่จะลบสคริปต์ pod ทั้งหมดออกจากขั้นตอนการสร้างของคุณและเพิ่มกลับเข้าไปใหม่เพื่อให้ทำงานได้อย่างน้อยในกรณีของฉัน


มีประโยชน์เป็นพิเศษหากคุณเปลี่ยนชื่อโครงการด้วยพ็อดรวม
bisma

12

คำตอบของ Keith นั้นยอดเยี่ยม - ฉันแค่ต้องการชี้ให้เห็นว่าเนื่องจากCocoapods 0.36เริ่มสนับสนุนDynamic Frameworksหากคุณใช้ 'use_frameworks!' ใน 'Podfile' ของคุณและคุณต้องการลบ Cocoapods คุณต้องทำสิ่งนี้:

  • ภายใต้เฟสBuild PhasesลบEmbed Pods Frameworks

ขวา. หากคุณไม่ทำเช่นนี้คุณจะได้รับข้อผิดพลาดในการสร้าง
เซีย

หากมีไฟล์อื่น ๆ ที่เกี่ยวข้องกับPodsด้านในของการBuild Phases ลบพวกเขาด้วย
luckyging3r

8

อาจมีสองด้านที่นักพัฒนาอาจเผชิญ

  • เขาอาจต้องการลบพ็อดออกจากโปรเจ็กต์อย่างสมบูรณ์
  • นักพัฒนาต้องการถอนการติดตั้งเฟรมเวิร์กเฉพาะจากโครงการจากพ็อด

ในกรณีแรกคุณต้องใช้ 'pod deintegrate' และทำตามขั้นตอนต่าง ๆ ที่กล่าวถึงในคำตอบข้างต้น

สำหรับกรณีที่สองนั่นคือถ้าคุณต้องการถอนการติดตั้งเฟรมเวิร์กใด ๆ ที่ติดตั้งมีวิธีที่ง่ายมากในไฟล์พ็อดของคุณเพียงแค่คอมเมนต์เฟรมเวิร์กที่คุณต้องการถอนการติดตั้งและรันคำสั่ง 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

ที่นี่ฉันต้องการถอนการติดตั้ง facebook และกรอบการแยกวิเคราะห์ (ซึ่งติดตั้งโดยใช้พ็อด) และไม่ใช่ iCarousel นั่นคือสาเหตุที่ฉันได้อัปเดตไฟล์พ็อดของฉันเหมือนด้านบน

ตอนนี้ถ้าฉันเรียกใช้พ็อดติดตั้งมันจะเก็บ iCarousel ไว้ในโปรเจคและจะลบเฟสบุ๊คและแยกออก


4
  1. สิ่งแรกที่คุณจะต้องทำคือการลบPodfile, Podfile.lockการPodsโฟลเดอร์และพื้นที่ทำงานที่สร้าง
  2. ถัดไปในการ.xcodeprojลบการอ้างอิงไปยังPods.xcconfigไฟล์และlibPods.aไฟล์
  3. ภายในแท็บโครงการสร้างเฟสให้ลบส่วนตรวจสอบพ็อด Manifest.lock (เปิด) ส่วนคัดลอกพ็อดทรัพยากร (ด้านล่าง) และฝังพ็อดทรัพยากร (ด้านล่าง)
  4. Pods.frameworkลบ

สิ่งเดียวที่คุณอาจต้องการทำคือมีห้องสมุดบางส่วนที่คุณเคยใช้มาก่อน คุณสามารถทำได้โดยการเจาะโฟลเดอร์ใด ๆ ก็ตามที่อยู่ในโฟลเดอร์พ็อดลงในโครงการของคุณ

มันใช้งานได้สำหรับฉัน




2

ลบไฟล์พ็อดที่เกี่ยวข้องทั้งหมด:

  • xx.xcworkspace
  • Podfile
  • Podfile.lock

และใน Project Navigator:

คลิกที่ชื่อโครงการ (ไอคอนสีน้ำเงิน) -> เป้าหมาย (*) -> Build Phases -> ลบ "[CP] Check Pods manifests.lock" (คลิกที่ "x")

(*) คลิกที่ชื่อโครงการคุณอาจต้องคลิกที่ "แสดงโครงการและรายการเป้าหมาย" เพื่อดูแถบด้านข้างก่อน


ฉันยังลบโฟลเดอร์ "พ็อด" ด้วยเพราะฉันใช้เพียงอันเดียวมิฉะนั้นจะลบโฟลเดอร์ "NameOfThePod" อันเดียวในโฟลเดอร์ "พ็อด"
Neph

1

ฉันจะเขียนสิ่งที่ฉันทำในเวลาสั้น ๆ (เพื่อลบ CocoaPods ใด ๆ จากโครงการของฉัน) ..

  1. ลบโฟลเดอร์ที่เพิ่มใด ๆ (เฟรมเวิร์ก, พ็อด, ... )
  2. ลบไฟล์ที่เพิ่มใด ๆ (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig, ... )
  3. เพียงปล่อยให้ต้นฉบับของคุณ (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
  4. ลบการอ้างอิงเฟรมเวิร์กจากโครงการบน xcode

ในการลบกรอบอ้างอิงออกจาก xcode:

  1. ใช้ Project Navigator
  2. เลือกโครงการ
  3. เลือก Target PROJECT
  4. เลือก Build Phases จากตัวเลือกด้านบน
  5. ออกจากกลุ่มเริ่มต้น (อ้างอิงเป้าหมายรวบรวมแหล่งที่มาไบนารีที่เชื่อมโยงกับห้องสมุดคัดลอกทรัพยากร Bundle) และลบอื่น ๆ


1

หากคุณเพียงแค่ต้องการลบหนึ่ง pod และเก็บไว้ที่อื่นที่คุณอาจติดตั้งไว้ให้เปิด podfile ในไดเรกทอรีแอพของคุณและลบอันที่คุณต้องการลบออก จากนั้นไปที่ไดเรกทอรีแอปของคุณโดยใช้เทอร์มินัลแล้วพิมพ์:

pod update

นี่จะเป็นการลบพ็อดที่คุณลบออกจากพ็อดไฟล์ คุณจะเห็นว่ามีการลบออกใน terminal:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

โปรดทราบว่าวิธีนี้จะดึงการอัปเดตไปยังพ็อดอื่น ๆ ในพ็อดไฟล์ของคุณด้วย คุณอาจจะหรืออาจไม่ต้องการที่


ตามเอกสารคุณควรใช้pod installสำหรับการเพิ่ม / ลบพ็อด นี่เป็นการเฉพาะเพื่อหลีกเลี่ยงการอัพเดตอย่างที่คุณพูดไว้ที่นี่ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ 'คำแนะนำ' ของพวกเขาได้ในหัวข้อนี้ ... guide.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

ฉันไม่คิดว่าคุณจะต้องสลายตัวอีกต่อไป ฉันสามารถทำได้ด้วยคำสั่งต่อไปนี้ใน terminal:

ฝักติดตั้ง

และจะลบไฟล์ที่ไม่ได้อยู่ใน podfile โดยอัตโนมัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.