Як видалити CocoaPods з проекту?


471

Який правильний спосіб видалити CocoaPods з проекту? Я хочу видалити весь CocoaPod. Через деякі обмеження, накладені моїм клієнтом, я не можу ним користуватися. Мені потрібно мати лише один xcodeproj замість xcworkspace.


12
І пам’ятайте: наступного разу використовуйте git і просто поверніть його назад!
Dan Rosenstark

35
Виконатиpod deintegrate
onmyway133

Відповіді:


1030

Видалення CocoaPods з проекту можливо, але на даний момент CLI не автоматизується. По-перше, якщо єдиною проблемою у вас є неможливість використання, xcworkspaceви можете використовувати CocoaPods з просто xcodeprojs, використовуючи --no-integrateпрапор, який створить Pods.xcodeprojробочу область, але не її. Потім ви можете додати це xcodeprojяк підпроект до свого основного xcodeproj.

Якщо ви дійсно хочете видалити всю інтеграцію CocoaPods, вам потрібно зробити кілька дій:

ПРИМІТКА Редагування деяких із цих дій, якщо зроблено неправильно, може порушити ваш основний проект. Я настійно рекомендую вам перевірити свої проекти на контроль джерел на всякий випадок. Також ці інструкції стосуються версії CocoaPods 0.39.0, вони можуть змінюватися новими версіями.

  1. Видаліть окремі файли ( Podfile Podfile.lockта ваш Podsкаталог)
  2. Видаліть створене xcworkspace
  3. Відкрийте xcodeprojфайл, видаліть посилання на Pods.xcconfigта libPods.aFrameworksгрупі)
  4. Під вашого Build Phasesвидаляють даними Copy Pods Resources, Embed Pods Frameworksі Check Pods Manifest.lockфаза.
  5. Це може здатися очевидним, але вам потрібно буде іншим чином інтегрувати сторонні бібліотеки або видалити посилання на них зі свого коду.

Після цих кроків вам слід встановити один xcodeproj який існував до інтеграції CocoaPods. Якщо я щось пропустив, дайте мені знати, і я це відредагую.

Також ми завжди шукаємо пропозиції щодо вдосконалення CocoaPods, тому якщо у вас є проблеми, будь ласка, надсилайте їх у нашому трекері випусків щоб ми могли придумати спосіб їх вирішення!

EDIT

Як показав Джек Ву в коментарях, є плагін третьої сторони CocoaPods, який може автоматизувати ці кроки для вас. Його можна знайти тут . Зауважте, що це плагін третьої сторони, і він не завжди може оновлюватися, коли є CocoaPods. Також зауважте, що його склав основний член команди CocoaPods, щоб ця проблема не була проблемою.


Слава Богу за цю посаду. Мене накрутили цей кошмар ... stackoverflow.com/questions/9863836/library-not-found-for-lpods, і мені довелося зараз видалити CP. Спасибі
Fattie

1
(У моєму випадку - березень 2014 року - це стосувалося всього божевілля "Розбір / Facebook-ліреї / налаштування архітектури". Може допомогти комусь читати. Знову дякую.)
Fattie

Я збираюся це зробити, і причина полягає в тому, що йому регулярно потрібно перекомпілювати всі проекти Pod, хоча жоден з них не торкався, тому це значно уповільнило мої строки збирання.
theLastNightTrain

24
Збираюся залишити це тут, тому що він спрацював для мене чудово: github.com/kylef/cocoapods-deintegrate
Джек

1
Якщо когось цікавить, чому мільйон попереджень спливає в Xcode, це тому, що вам потрібно здійснити зміни на git / svn
Achintya Ashok

351

pod deintegrateі pod cleanє дві призначені команди для видалення 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
дякую, працює (майже) для мене. Після цих команд у мене під час компіляції з’явилася помилка лінкера. Рішенням було вилучити "Pods Framework" з Targets-> Phases Build-> Link Binary With
Bibliories

Оскільки версія 1.0.0beta8 Cocoapods створює дивні фази збирання з такими назвами: 📦 Перевірте Pods Manifest.lock. Перевірте, чи їх видаляють після дезінтеграції.
Тимур Бернікович

Зауважте, що якщо ви працюєте на машині, на якій не було встановлено какаоподів, вам потрібно буде встановити gem встановити cocoapods, перш ніж команда pod запрацює. Це може статися, якщо ви відновите або скопіюєте проект у нову систему.
NoelHunter

65

Щоб повністю видалити стручки з проекту, спочатку потрібно встановити дві речі ... це наступні дії (якщо припустити, що у вашій системі вже встановлені какао-стручки) ...

  1. Cocoapods-дезінтегрувати плагін
  2. Cocaapods-Clean плагін

Установка

  1. Cocoapods-дезінтегрувати плагін

    Скористайтеся цією командою на своєму терміналі, щоб встановити її.

    sudo gem install cocoapods-deintegrate
  2. Cocaapods-Clean плагін

    Скористайтеся цією командою на своєму терміналі, щоб встановити її.

    sudo gem install cocoapods-clean

Використання

Перш за все, зайдіть у папку свого проекту, використовуючи звичайну команду, наприклад ..

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

Тепер використовуйте ці два плагіни, щоб повністю їх видалити наступним чином.

  1. Cocoapods-дезінтегрувати плагін

    Скористайтеся цією командою на своєму терміналі, щоб спочатку дезінтегрувати стручки від вашого проекту.

     pod deintegrate

Дезінтегруючі стручки

  1. Cocaapods-Clean плагін

    Після деінтеграції стручка від вашого проекту використовуйте цю наступну команду на своєму терміналі, щоб повністю очистити його.

     pod clean

    Після виконання вищезазначених завдань має бути ще файл, що залишився у вашому каталозі проектів. Просто видаліть його вручну або скористайтеся цією командою на терміналі ..

     rm Podfile

Ось це ... Тепер у вас проект без вітру ... очищений.

Видалення Cocoapods із системи.

Будь-яким способом спробуйте скористатися наступною командою на своєму терміналі для видалення / видалення кока-стручків із вашої системи.

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
Проблема дезінтеграції полягає в тому, що вона покладається на дорогоцінні камені та рубін, як і какаоди. В даний час я шукаю видалити стручки через труднощі з El Capitan і дорогоцінними каменями. Деінсталятори повинні бути доступними як окремі бінарні файли.
nheagy

Дякуємо та більше деталей тут, якщо у вас виникли проблеми після успішного деінтеграції.
Адам Джонс

Дякую, що це було гладко, використовуючи "cocoapods-deintegrate"
shaikh

46

pod deintegrate

Після цього cmd у вашому проекті не залишилося жодних слідів від какаоподів.

Але ваше робоче середовище, на яке посилається проект Pods, все ще залишається, вам потрібно видалити нижче 3 файлів вручну:

xx.xcworkspace
Podifle
Podfile.lock

Потім ви можете знову використовувати свій проект.

Веселіться!

Тестова версія CocoaPod = 1.2.0


Приємно, також працював тут після того, як видалив більшість матеріалів вручну.
мозковий масив

дезінтегрувати нукери вашої робочої області. Будьте обережні, якщо вам трапляється це потрібно.
SafeFastExpressive

1
@mistdon ти врятував життя y другий раз.
Dheeraj D

20

Я спробував усі ці відповіді, але все одно не склався, зрештою я спробував:

pod deintegrate
pod install

яка насправді працювала!

Начебто потрібно видалити всі сценарії струбків із фаз збирання та знову додати їх, щоб він працював, принаймні в моєму випадку.


Особливо корисно, якщо ви перейменували проект із вбудованими стручками.
бісма

12

Відповідь Кіта чудова - я просто хочу зазначити, що оскільки Cocoapods 0.36 починає підтримувати динамічні рамки , якщо ви використовуєте "use_frameworks!" у своєму "Podfile", і ви хочете видалити Cocoapods, ви повинні зробити це:

  • У фазі Build Phasesвидалення Embed Pods Frameworks.

Правильно. Якщо цього не зробити, ви отримаєте помилки в побудові.
Zia

Якщо є якісь інші файли, що мають справу з Podsвнутрішньою стороною, Build Phases видаліть їх також.
luckyging3r

8

Розробник може зіткнутися з двома аспектами.

  • Або він хоче повністю видалити стручки з проекту
  • розробник хоче видалити конкретний фреймворк з проекту з стручків.

У першому випадку вам потрібно скористатися "дезінтеграцією" і виконати декілька кроків, зазначених у відповідях вище.

У другому випадку, якщо ви хочете видалити будь-яку конкретну рамку, встановлену там, дуже простий спосіб, доступний у вашому файлі pod, просто прокоментуйте рамку, яку ви хочете видалити та запустити команду встановлення 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

Тут я хочу видалити фейсбук і рамки розбору (які були встановлені за допомогою стручків), а не iCarousel, тому я оновив свій файл файлу, як вище.

Тепер, якщо я запускаю pod install, він збереже iCarousel таким, який є у моєму проекті, і видалить facebook та розбір.


4
  1. Перше , що вам потрібно зробити , це видалити Podfile, Podfile.lock, в Podsпапку, і створюється робочий простір.
  2. Далі в розділі .xcodeprojВидаліть посилання на Pods.xcconfigфайли та libPods.aфайл.
  3. На вкладці проекту "Фази збирання" видаліть розділ "Перевірити поділки".
  4. Видалити Pods.framework.

Єдине, що ви можете зробити, це включити деякі бібліотеки, якими ви користувалися раніше. Це можна зробити, просто перетягнувши папки, які знаходяться в папках стручків, у ваш проект (я вважаю за краще помістити їх у папку "Підтримуючі файли").

Це працювало для мене.




2

Видаліть усі пов'язані файли стручка:

  • xx.xcworkspace
  • Підфіл
  • Podfile.lock

та в Навігаторі проектів:

Клацніть на назві проекту (синій значок) -> Цілі (*) -> Фази збірки -> Видалити "[CP] Перевірте маніфести. Блоків" (натисніть на "x")

(*) Клацніть назву проекту, можливо, вам доведеться натиснути «Показати список проектів та цілі», щоб спочатку побачити бічну панель.


Я також видалив папку "Pods", оскільки використовував лише одну, інакше просто видаліть одну папку "NameOfThePod" всередині папки "Pods".
Неф

1

Я напишу те, що зробив iv дуже коротко (щоб видалити будь-які CocoaPods з мого проекту) ..

  1. видалити будь-яку додану папку (фреймворки, 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

Якщо ви просто хочете видалити один стручок і зберегти інші, які ви, можливо, встановили, відкрийте підфільм у своєму каталозі додатків та видаліть той, який ви хочете видалити. Потім перейдіть до каталогу додатків за допомогою терміналу та введіть:

pod update

Це видалить поділ, який ви видалили з підфайлу. Ви побачите, що його видалено в терміналі:

Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing

Зауважте, що цей метод також буде виводити будь-які оновлення до інших стручок у вашому підфілі. Ви можете або не хочете цього.


Згідно з документацією, ви повинні використовувати pod installдля додавання / видалення стручків. Це спеціально для уникнення оновлення, як ви сказали тут. Ви можете прочитати більше про їхні "Посібники" на цю саму тему ... guides.cocoapods.org/using/pod-install-vs-update.html
Марк А.

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

Я не думаю, що вам більше не потрібно деінтегрувати. Я зміг це зробити за допомогою наступної команди в терміналі:

встановити стручок

і він автоматично видалив ті, яких більше немає в підфілі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.