Как правильно удалить CocoaPods из проекта? Я хочу удалить весь CocoaPod. Из-за некоторых ограничений, наложенных моим клиентом, я не могу его использовать. Мне нужно иметь только один xcodeproj вместо xcworkspace.
pod deintegrate
Как правильно удалить CocoaPods из проекта? Я хочу удалить весь CocoaPod. Из-за некоторых ограничений, наложенных моим клиентом, я не могу его использовать. Мне нужно иметь только один xcodeproj вместо xcworkspace.
pod deintegrate
Ответы:
Удаление CocoaPods из проекта возможно, но в настоящее время не автоматизировано CLI. Во-первых, если единственная проблема, с которой вы столкнулись, это невозможность использования, xcworkspace
вы можете использовать CocoaPods только xcodeproj
с s, используя --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, чтобы проблема не была проблемой.
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
Чтобы полностью удалить стручки из проекта, вам нужно сначала установить две вещи ... они следующие (Предположим, у вас уже установлены какао-стручки в вашей системе.) ...
Установка
Cocoapods-Deintegrate Plugin
Используйте следующую команду на вашем терминале, чтобы установить его.
sudo gem install cocoapods-deintegrate
Cocoapods-Clean Плагин
Используйте следующую команду на вашем терминале, чтобы установить его.
sudo gem install cocoapods-clean
Применение
Прежде всего, перейдите в папку вашего проекта, используя обычную команду, например ..
cd (path of the project) //Remove the braces after cd
Теперь используйте эти два плагина, чтобы полностью удалить его следующим образом.
Cocoapods-Deintegrate Plugin
Используйте эту следующую команду на вашем терминале, чтобы сначала деинтегрировать модули из вашего проекта.
pod deintegrate
Cocoapods-Clean Плагин
После деинтеграции pod из вашего проекта используйте следующую команду на вашем терминале, чтобы полностью очистить его.
pod clean
После выполнения вышеуказанных задач в каталоге вашего проекта должен остаться подфайл. Просто удалите его вручную или используйте следующую команду на терминале.
rm Podfile
Вот и все ... Теперь ваш проект свободен от стручков ... Очищен.
Удаление Cocoapods из системы.
В любом случае попробуйте использовать следующую команду на своем терминале, чтобы удалить / удалить кока-стручки из вашей системы.
sudo gem uninstall cocoapods
Это удалит кока-стручки автоматически.
Спасибо. Надеюсь, это помогло.
pod clean
удаляет ваше рабочее пространство , даже если в нем есть другие проекты! Быть осторожен!
Я думаю, что есть более простой способ сделать это.
Согласно отредактированному ответу, теперь вы можете использовать сторонний плагин cocoapods-deintegrate , он надежен, потому что его сделал член основной команды CocoaPods.
Но есть еще несколько файлов:
Podfile
Podfile.lock
Workspace
Вы можете удалить их из своего проекта вручную, но есть еще один инструмент, который поможет вам очистить их, благодаря cocoapods-clean .
Наконец, работа по удалению еще не завершена, cocoapods-clean
не очищайте Podfile
, просто запустите:
rm Podfile
Ура!
Перед удалением вы должны убедиться, что у вас есть резервная копия вашего проекта!
pod deintegrate
После этого cmd в вашем проекте не осталось следов Cocoapods.
Но ваше рабочее пространство, ссылающееся на проект Pods, все еще остается, вам нужно удалить ниже 3 файла вручную:
xx.xcworkspace
Podifle
Podfile.lock
Затем вы можете снова использовать свой проект.
Радоваться, веселиться!
Тестовая версия CocoaPod = 1.2.0
Я попробовал все эти ответы, но это все равно не получилось, в конце концов я попытался:
pod deintegrate
pod install
который на самом деле работал!
Как будто нужно удалить все сценарии pod из ваших фаз сборки и заново добавить их обратно, чтобы это работало, по крайней мере, в моем случае.
Ответ Кейта великолепен - я просто хочу отметить, что поскольку Cocoapods 0.36 начинает поддерживать Dynamic Frameworks , если вы используете 'use_frameworks!' в вашем «Podfile» и вы хотите удалить Cocoapods, вы должны сделать это:
Build Phases
удаления Embed Pods Frameworks
.Pods
внутренней частью, Build Phases
удалите их тоже.
Разработчик может столкнуться с двумя аспектами.
В первом случае вы должны использовать «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
Здесь я хочу удалить фейсбук и проанализировать фреймворки (которые были установлены с помощью pods), а не iCarousel, поэтому я обновил свой файл pod, как указано выше.
Теперь, если я запустлю pod install, он сохранит iCarousel, как в моем проекте, и удалит Facebook и проанализирует.
Podfile
, Podfile.lock
, тоPods
папку, и создается рабочее пространство..xcodeproj
удалите ссылки на Pods.xcconfig
файлы иlibPods.a
файл.Pods.framework
.Единственное, что вы можете сделать, - это включить некоторые библиотеки, которые вы использовали ранее. Вы можете сделать это, просто перетащив любые папки из папок pods в ваш проект (я предпочитаю помещать их в мою папку Supporting Files).
Это сработало для меня.
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile
gem uninstall cocoapods-deintegrate cocoapods-clean
Если не работает, попробуйте
1. очистить проект.
2. удалил производные данные.
если вы не знаете, как удалить производные данные, перейдите сюда
Удалить все связанные файлы pod:
и в навигаторе проекта:
Нажмите на название проекта (синий значок) -> Цели (*) -> Этапы сборки -> Удалить «[CP] Check Pods manifts.lock» (нажмите на «x»)
(*) Нажмите на название проекта, возможно, вам придется нажать «Показать проект и список целей», чтобы сначала увидеть боковую панель.
Я напишу, что я сделал очень кратко (чтобы удалить любые CocoaPods из моего проекта) ..
Чтобы удалить ссылку на структуру из xcode:
podfile
имя из.plist
Если вы просто хотите удалить один модуль и сохранить другие, которые вы, возможно, установили, откройте файл pod в каталоге вашего приложения и удалите тот, который вы хотите удалить. Затем перейдите в каталог приложения с помощью терминала и введите:
pod update
Это удалит модуль, который вы удалили из файла. Вы увидите, что он был удален в терминале:
Analyzing dependencies
Removing FirebaseUI
Removing UICircularProgressRing
Обратите внимание, что этот метод также извлекает все обновления для других модулей в вашем подфайле. Вы можете или не можете этого хотеть.
pod install
для добавления / удаления модулей. Это специально для того, чтобы избежать обновления, как вы сказали здесь. Вы можете прочитать больше в их «Руководствах» по этой самой теме ... guides.cocoapods.org/using/pod-install-vs-update.html
Используйте эти команды терминала (не забудьте использовать 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
Я не думаю, что вам нужно больше дезинтегрировать. Я смог сделать это с помощью следующей команды в терминале:
под установку
и он автоматически удаляет те, которых больше нет в подфайле