Какой правильный способ удаления CocoaPods из проекта? Я хочу удалить весь CocoaPod. Из-за некоторых ограничений, наложенных моим клиентом, я не могу его использовать. Мне нужно иметь только один xcodeproj вместо xcworkspace.
Как удалить CocoaPods из проекта?
Ответ 1
Удаление CocoaPods из проекта возможно, но не в настоящее время автоматизировано CLI. Во-первых, если единственная проблема, с которой вы сталкиваетесь, не в состоянии использовать xcworkspace
, вы можете использовать CocoaPods только с xcodeproj
, используя флаг --no-integrate
, который будет создавать Pods.xcodeproj
, но не рабочее пространство. Затем вы можете добавить этот xcodeproj
в качестве подпроекта к основному xcodeproj
.
Если вы действительно хотите удалить всю интеграцию CocoaPods, вам нужно сделать несколько вещей:
ПРИМЕЧАНИЕ редактирование некоторых из этих вещей, если это будет сделано неправильно, может сломать ваш основной проект. Я настоятельно рекомендую вам проверить ваши проекты в исходном контроле на всякий случай. Также эти инструкции предназначены для версии CocoaPods 0.39.0
, они могут меняться с новыми версиями.
- Удалить автономные файлы (
Podfile
Podfile.lock
и ваш каталогPods
) - Удалить сгенерированный
xcworkspace
- Откройте файл
xcodeproj
, удалите ссылки наPods.xcconfig
иlibPods.a
(в группеFrameworks
) - В разделе
Build Phases
удалите фазыCopy Pods Resources
,Embed Pods Frameworks
иCheck Pods Manifest.lock
. - Это может показаться очевидным, но вам нужно будет интегрировать сторонние библиотеки каким-либо другим способом или удалить ссылки на них из вашего кода.
После этих шагов вы должны быть установлены с одним xcodeproj
, который существовал до того, как вы интегрировали CocoaPods. Если я пропустил что-нибудь, дайте мне знать, и я отредактирую это.
Также мы всегда ищем предложения по улучшению CocoaPods, поэтому, если у вас есть проблемы, отправьте их в наш трекер ошибок, чтобы мы могли придумать способ их исправить!
ИЗМЕНИТЬ
Как показано Джеком Ву в комментариях, есть сторонний плагин CocoaPods, который может автоматизировать эти шаги для вас. Здесь можно найти . Обратите внимание, что это сторонний плагин и может не всегда обновляться при использовании CocoaPods. Также обратите внимание, что это сделано членом основной команды CocoaPods, так что проблема не будет проблемой.
Ответ 2
pod deintegrate
и pod clean
- две назначенные команды для удаления 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
Ответ 3
Чтобы полностью удалить стручки из проекта, вам нужно сначала установить две вещи... они следующие (Предположим, у вас уже установлены cocoa-стручки в вашей системе.)...
- Cocoapods-Deintegrate Плагин
- Cocoapods-Clean Плагин
Монтаж
-
Cocoapods-Deintegrate Плагин
Используйте эту следующую команду на вашем терминале, чтобы установить его.
sudo gem install cocoapods-deintegrate
-
Cocoapods-Clean Плагин
Используйте эту следующую команду на вашем терминале, чтобы установить его.
sudo gem install cocoapods-clean
использование
Прежде всего, перейдите в папку вашего проекта, используя обычную команду, например..
cd (path of the project) //Remove the braces after cd
Теперь используйте эти два плагина, чтобы полностью удалить его следующим образом.
-
Cocoapods-Deintegrate Плагин
Используйте следующую команду на вашем терминале, чтобы сначала деинтегрировать модули из вашего проекта.
pod deintegrate
-
Cocoapods-Clean Плагин
После деинтеграции pod из вашего проекта используйте следующую команду на вашем терминале, чтобы полностью очистить его.
pod clean
После выполнения вышеуказанных задач в каталоге вашего проекта должен остаться подфайл. Просто удалите его вручную или используйте следующую команду на терминале.
rm Podfile
Вот и все... Теперь ваш проект свободен от стручков... Очищен.
Удаление Cocoapods из системы.
В любом случае попробуйте использовать следующую команду на своем терминале, чтобы удалить/удалить кока-стручки из вашей системы.
sudo gem uninstall cocoapods
Это удалит кока-стручки автоматически.
Благодарю. Надеюсь, это помогло.
Ответ 4
Я думаю, что есть более простой способ сделать это.
Как отредактировано принятым ответом, теперь вы можете использовать сторонний плагин cocoapods-deintegrate, он надежный, потому что его сделал основной член команды CocoaPods.
Но все еще остаются файлы:
Podfile
Podfile.lock
Workspace
Вы можете удалить их из своего проекта вручную, но есть еще один инструмент, помогающий вам их очистить, благодаря cocoapods-clean.
Наконец, деинсталляция еще не завершена, cocoapods-clean
не очистить Podfile
, просто запустите:
rm Podfile
Ура!
Перед удалением вы должны убедиться, что у вас есть резервная копия вашего проекта!
Ответ 5
pod deintegrate
После этого cmd в вашем проекте не осталось следов Cocoapod.
Но ваше рабочее пространство, ссылающееся на проект Pods, по-прежнему остается, вам нужно удалить менее трех файлов вручную:
xx.xcworkspace
Podifle
Podfile.lock
Затем вы можете снова использовать свой проект.
Удачи!
Тест версии CocoaPod = 1.2.0
Ответ 6
Я пробовал все эти ответы, но он все равно не строился, в конце концов я попробовал:
pod deintegrate
pod install
который действительно сработает!
Как будто нужно удалить все сценарии pod из фаз сборки и снова добавить их для работы, по крайней мере, в моем случае.
Ответ 7
Ответ Keith велик - я просто хочу отметить, что, поскольку Cocoapods 0.36 начинает поддерживать Динамические рамки, если вы используете 'use_frameworks!' в вашем подпикселе, и вы хотите удалить Cocoapods, вы должны сделать это:
- В разделе
Build Phases
удалить фазуEmbed Pods Frameworks
.
Ответ 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
Здесь я хочу удалить фреймворки facebook и parse (которые были установлены с помощью pods), а не iCarousel, поэтому я обновил свой файл pod, как показано выше.
Теперь, если я запустил pod install, он сохранит iCarousel так, как он есть в моем проекте, и удалит facebook и разбор.
Ответ 9
- Первое, что вам нужно сделать, это удалить папку
Podfile
,Podfile.lock
,Pods
и сгенерированную рабочую область. - Затем в
.xcodeproj
удалите ссылки на файлыPods.xcconfig
иlibPods.a
. - На вкладке проекта "Сборка фаз" удалите раздел "Показывать разделы" Ящик манифеста "(открыть)," Копировать ресурсы ресурсов "(внизу) и" Вставить вкладки "(внизу).
- Удалить
Pods.framework
.
Единственное, что вы, возможно, захотите сделать, это включить некоторые из библиотек, которые вы использовали раньше. Вы можете сделать это, просто перетаскивая все папки, которые находятся в папках pods в ваш проект (я предпочитаю помещать их в папку поддерживающих файлов).
Это сработало для меня.
Ответ 10
Если не работает, попробуйте
1. очистите проект.
2. удаленные данные.
если вы не знаете, как удалить производные данные, перейдите сюда
Ответ 11
Я напишу, что сделало очень кратко (чтобы удалить любые CocoaPods из моего проекта).
- удалить любую добавленную папку (фреймворки, подпрограммы,...)
- удалять любые добавленные файлы (PROJECT.xcworkspace, PodFile, PodFile.lock, Pods-PROJECT.debug.xcconfig, Pods-PROJECT.release.xcconfig,...)
- просто оставьте свои оригинальные (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
- удалить ссылку на фреймворк из проекта на xcode
Чтобы удалить ссылку на фреймворк из xcode:
- Используйте Навигатор проектов
- Выбрать проект
- Выберите Target PROJECT
- Выберите "Сформировать фазы" из верхних опций.
- оставьте группы по умолчанию (целевые зависимости, скомпилируйте источники, связанные бинарные файлы с библиотеками, скопируйте ресурсы Bundle) и удалите любые другие
Ответ 12
- Удалите имя
podfile
из.plist
- Повторно установите pod (используйте эту ссылку для установки pod)
Ответ 13
Удалить все связанные файлы pod:
- xx.xcworkspace
- Podfile
- Podfile.lock
и в навигаторе проекта:
Нажмите на название проекта (синий значок) → Цели (*) → Этапы сборки → Удалить "[CP] Check Pods manifts.lock" (нажмите "x")
(*) Нажмите на название проекта, возможно, вам придется нажать "Показать проект и список целей", чтобы сначала увидеть боковую панель.
Ответ 14
Если вы просто хотите удалить один модуль и сохранить другие, которые вы, возможно, установили, откройте файл pod в каталоге вашего приложения и удалите тот, который вы хотите удалить. Затем перейдите в каталог приложения с помощью терминала и введите:
pod update
Это удалит модуль, который вы удалили из файла. Вы увидите, что он был удален в терминале:
Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing
Обратите внимание, что этот метод также извлекает любые обновления для других модулей в вашем подфайле. Вы можете или не можете этого хотеть.
Ответ 15
Используйте эти команды терминала (не забудьте использовать 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
Ответ 16
Мне удалось удалить мои модули в проекте с помощью приложения CocoaPods (версия 1.5.2). После этого я только удалил в папке файлы podfile, podfile.lock и xcworkspace.
Ответ 17
графическое представление подробно
Ответ 18
Как улучшить cocoapods: создайте GUI и забудьте об этом безумии командной строки. Мы не в 1974 году больше.