Как правильно удалить CocoaPods из проекта? Я хочу удалить весь CocoaPod. Из-за некоторых ограничений, наложенных моим клиентом, я не могу его использовать. Мне нужно иметь только один xcodeproj вместо xcworkspace.
И помните: в следующий раз используйте git и просто откатитесь назад!
Дэн Розенстарк
35
Runpod deintegrate
onmyway133
Ответы:
1032
Удаление CocoaPods из проекта возможно, но в настоящее время не автоматизировано CLI. Во-первых, если единственная проблема, с которой вы столкнулись, это невозможность использования, xcworkspaceвы можете использовать CocoaPods только xcodeprojс s, используя --no-integrateфлаг, который создаст, Pods.xcodeprojно не рабочее пространство. Затем вы можете добавить это xcodeprojв качестве подпроекта на ваш основнойxcodeproj .
Если вы действительно хотите удалить все интеграции CocoaPods, вам нужно сделать несколько вещей:
ПРИМЕЧАНИЕ редактирование некоторых из этих вещей, если сделано неправильно, может сломать ваш основной проект. Я настоятельно рекомендую вам проверить ваши проекты в системе контроля версий на всякий случай. Также эти инструкции относятся к версии CocoaPods 0.39.0, они могут меняться с новыми версиями.
Это может показаться очевидным, но вам нужно каким-то другим способом интегрировать сторонние библиотеки или удалить ссылки на них из своего кода.
После этих шагов вы должны быть установлены с одним xcodeproj , существовавший до того, как вы интегрировали CocoaPods. Если я что-то пропустил, дайте мне знать, и я отредактирую это.
Кроме того, мы всегда ищем предложения о том, как улучшить CocoaPods, поэтому, если у вас есть проблемы, пожалуйста, отправьте их в наш трекер, чтобы мы могли найти способ их исправить!
РЕДАКТИРОВАТЬ
Как показал Джек Ву в комментариях, есть сторонний плагин CocoaPods, который может автоматизировать эти шаги для вас. Это можно найти здесь . Обратите внимание, что это сторонний плагин, и он не всегда может быть обновлен, когда CocoaPods установлен. Также обратите внимание, что это сделано основным членом команды CocoaPods, чтобы проблема не была проблемой.
(В моем случае - март 2014 года - это связано со всем безумием "Parse / Facebook библиотеки / настройки архитектуры". Может помочь кому-то читать.
Еще
Я собираюсь сделать это, и причина в том, что он регулярно должен перекомпилировать все проекты Pod, даже если ни один из них не был затронут, поэтому это значительно замедлило время моей сборки.
спасибо, работает (почти) для меня. После этих команд я получил ошибку компоновщика во время компиляции. Решение состояло в том, чтобы удалить «Фреймворк Pods» из Targets-> Build Phases-> Link Binary With Libraries
uldo
Начиная с версии 1.0.0beta8 Cocoapods создают странные фазы сборки с такими именами: 📦 Проверьте Pods Manifest.lock. Проверьте, удаляются ли они после дезинтеграции.
Тимур Берникович
Обратите внимание, что если вы работаете на машине, на которой не установлены cocoapods, вам нужно будет выполнить gem install cocoapods, прежде чем сработает команда pod. Это может произойти, если вы восстановите или скопируете проект в новую систему.
NoelHunter
65
Чтобы полностью удалить стручки из проекта, вам нужно сначала установить две вещи ... они следующие (Предположим, у вас уже установлены какао-стручки в вашей системе.) ...
Cocoapods-Deintegrate Plugin
Cocoapods-Clean Плагин
Установка
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 из системы.
В любом случае попробуйте использовать следующую команду на своем терминале, чтобы удалить / удалить кока-стручки из вашей системы.
Вау! pod cleanудаляет ваше рабочее пространство , даже если в нем есть другие проекты! Быть осторожен!
1
@charl В случае очистки модулей из одного проекта вы должны очистить рабочее пространство ... но метод, очевидно, неприменим для нескольких проектов, связанных с одним рабочим пространством .... :(
onCompletion
место на !! Именно то, что я хотел
Vigneshwaran.m
49
Я думаю, что есть более простой способ сделать это.
Согласно отредактированному ответу, теперь вы можете использовать сторонний плагин cocoapods-deintegrate , он надежен, потому что его сделал член основной команды CocoaPods.
Но есть еще несколько файлов:
PodfilePodfile.lockWorkspace
Вы можете удалить их из своего проекта вручную, но есть еще один инструмент, который поможет вам очистить их, благодаря cocoapods-clean .
Наконец, работа по удалению еще не завершена, cocoapods-cleanне очищайте Podfile, просто запустите:
rm Podfile
Ура!
Перед удалением вы должны убедиться, что у вас есть резервная копия вашего проекта!
Однако проблема деинтеграции заключается в том, что она основана на драгоценных камнях и рубине, как кокосопод. В настоящее время я ищу удалить стручки из-за трудностей с El Capitan и драгоценными камнями. Деинсталляторы должны быть доступны в виде отдельных двоичных файлов.
Nheagy
Спасибо и больше деталей здесь, если у вас возникнут проблемы после успешной деинтеграции.
Адам Джонс
Спасибо, что это было гладко, используя «cocoapods-deintegrate»
шейх
46
pod deintegrate
После этого cmd в вашем проекте не осталось следов Cocoapods.
Но ваше рабочее пространство, ссылающееся на проект Pods, все еще остается, вам нужно удалить ниже 3 файла вручную:
Особенно полезно, если вы переименовали проект со встроенными модулями.
Бисма
12
Ответ Кейта великолепен - я просто хочу отметить, что поскольку Cocoapods 0.36 начинает поддерживать Dynamic Frameworks , если вы используете 'use_frameworks!' в вашем «Podfile» и вы хотите удалить Cocoapods, вы должны сделать это:
На этапе Build Phasesудаления Embed Pods Frameworks.
Правильно. Если вы этого не сделаете, вы получите ошибки сборки.
Зия
Если есть какие-либо другие файлы, связанные с Podsвнутренней частью, Build Phases удалите их тоже.
luckyging3r
8
Разработчик может столкнуться с двумя аспектами.
Либо он хочет полностью удалить стручки из проекта
Разработчик хочет удалить конкретный фреймворк из проекта из модулей.
В первом случае вы должны использовать «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 файл.
На вкладке проекта Build Phases удалите раздел Check Pods Manifest.lock (открыть), раздел «Копирование ресурсов Pod» (внизу) и «Embed Pod Resources» (внизу).
Удалить Pods.framework.
Единственное, что вы можете сделать, - это включить некоторые библиотеки, которые вы использовали ранее. Вы можете сделать это, просто перетащив любые папки из папок pods в ваш проект (я предпочитаю помещать их в мою папку Supporting Files).
просто оставьте свои оригинальные (PROJECT, PROJECT_Tests, PROJECT.xcodeproj)
удалить ссылку на структуру из проекта на xcode
Чтобы удалить ссылку на структуру из xcode:
Используйте навигатор проекта
Выберите проект
Выберите целевой проект
Выберите Build Phases из лучших вариантов
оставьте группы по умолчанию (целевые зависимости, исходники компиляции, связанные двоичные файлы с библиотеками, ресурсы пакета копирования) и удалите любые другие
Если вы просто хотите удалить один модуль и сохранить другие, которые вы, возможно, установили, откройте файл pod в каталоге вашего приложения и удалите тот, который вы хотите удалить. Затем перейдите в каталог приложения с помощью терминала и введите:
pod update
Это удалит модуль, который вы удалили из файла. Вы увидите, что он был удален в терминале:
Согласно документации, вы должны использовать pod installдля добавления / удаления модулей. Это специально для того, чтобы избежать обновления, как вы сказали здесь. Вы можете прочитать больше в их «Руководствах» по этой самой теме ... guides.cocoapods.org/using/pod-install-vs-update.html
Марк А. Донохо,
0
Используйте эти команды терминала (не забудьте использовать sudo в начале новой строки):
open:YourDirYouName$ 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:YourDirYourName$ 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)
Мне удалось удалить мои модули в проекте с помощью приложения CocoaPods (версия 1.5.2). После этого я только удалил в папке файлы podfile, podfile.lock и 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 из вашего проекта / репо.Вот полный набор команд:
Оригинальное решение было найдено здесь: 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
Используйте следующую команду на вашем терминале, чтобы установить его.
Cocoapods-Clean Плагин
Используйте следующую команду на вашем терминале, чтобы установить его.
Применение
Прежде всего, перейдите в папку вашего проекта, используя обычную команду, например ..
Теперь используйте эти два плагина, чтобы полностью удалить его следующим образом.
Cocoapods-Deintegrate Plugin
Используйте эту следующую команду на вашем терминале, чтобы сначала деинтегрировать модули из вашего проекта.
Cocoapods-Clean Плагин
После деинтеграции pod из вашего проекта используйте следующую команду на вашем терминале, чтобы полностью очистить его.
После выполнения вышеуказанных задач в каталоге вашего проекта должен остаться подфайл. Просто удалите его вручную или используйте следующую команду на терминале.
Вот и все ... Теперь ваш проект свободен от стручков ... Очищен.
Удаление Cocoapods из системы.
В любом случае попробуйте использовать следующую команду на своем терминале, чтобы удалить / удалить кока-стручки из вашей системы.
Это удалит кока-стручки автоматически.
Спасибо. Надеюсь, это помогло.
источник
pod clean
удаляет ваше рабочее пространство , даже если в нем есть другие проекты! Быть осторожен!Я думаю, что есть более простой способ сделать это.
Согласно отредактированному ответу, теперь вы можете использовать сторонний плагин cocoapods-deintegrate , он надежен, потому что его сделал член основной команды CocoaPods.
Но есть еще несколько файлов:
Вы можете удалить их из своего проекта вручную, но есть еще один инструмент, который поможет вам очистить их, благодаря cocoapods-clean .
Наконец, работа по удалению еще не завершена,
cocoapods-clean
не очищайтеPodfile
, просто запустите:Ура!
Перед удалением вы должны убедиться, что у вас есть резервная копия вашего проекта!
источник
pod deintegrate
После этого cmd в вашем проекте не осталось следов Cocoapods.
Но ваше рабочее пространство, ссылающееся на проект Pods, все еще остается, вам нужно удалить ниже 3 файла вручную:
xx.xcworkspace
Podifle
Podfile.lock
Затем вы можете снова использовать свой проект.
Радоваться, веселиться!
Тестовая версия CocoaPod = 1.2.0
источник
Я попробовал все эти ответы, но это все равно не получилось, в конце концов я попытался:
который на самом деле работал!
Как будто нужно удалить все сценарии pod из ваших фаз сборки и заново добавить их обратно, чтобы это работало, по крайней мере, в моем случае.
источник
Ответ Кейта великолепен - я просто хочу отметить, что поскольку Cocoapods 0.36 начинает поддерживать Dynamic Frameworks , если вы используете 'use_frameworks!' в вашем «Podfile» и вы хотите удалить Cocoapods, вы должны сделать это:
Build Phases
удаленияEmbed Pods Frameworks
.источник
Pods
внутренней частью,Build Phases
удалите их тоже.Разработчик может столкнуться с двумя аспектами.
В первом случае вы должны использовать «pod deintegrate» и выполнить несколько шагов, упомянутых в ответах выше.
Во втором случае, если вы хотите удалить какой-либо конкретный фреймворк, который там установлен, очень простым способом, доступным в вашем файле pod, просто прокомментируйте фреймворк, который вы хотите удалить, и выполните команду pod install
Здесь я хочу удалить фейсбук и проанализировать фреймворки (которые были установлены с помощью pods), а не iCarousel, поэтому я обновил свой файл pod, как указано выше.
Теперь, если я запустлю pod install, он сохранит iCarousel, как в моем проекте, и удалит Facebook и проанализирует.
источник
Podfile
,Podfile.lock
, тоPods
папку, и создается рабочее пространство..xcodeproj
удалите ссылки наPods.xcconfig
файлы иlibPods.a
файл.Pods.framework
.Единственное, что вы можете сделать, - это включить некоторые библиотеки, которые вы использовали ранее. Вы можете сделать это, просто перетащив любые папки из папок pods в ваш проект (я предпочитаю помещать их в мою папку Supporting Files).
Это сработало для меня.
источник
источник
gem uninstall cocoapods-deintegrate cocoapods-clean
Если не работает, попробуйте
1. очистить проект.
2. удалил производные данные.
если вы не знаете, как удалить производные данные, перейдите сюда
Как «Удалить производные данные» в Xcode6?
источник
Удалить все связанные файлы pod:
и в навигаторе проекта:
Нажмите на название проекта (синий значок) -> Цели (*) -> Этапы сборки -> Удалить «[CP] Check Pods manifts.lock» (нажмите на «x»)
(*) Нажмите на название проекта, возможно, вам придется нажать «Показать проект и список целей», чтобы сначала увидеть боковую панель.
источник
Я напишу, что я сделал очень кратко (чтобы удалить любые CocoaPods из моего проекта) ..
Чтобы удалить ссылку на структуру из xcode:
источник
podfile
имя из.plist
источник
Если вы просто хотите удалить один модуль и сохранить другие, которые вы, возможно, установили, откройте файл pod в каталоге вашего приложения и удалите тот, который вы хотите удалить. Затем перейдите в каталог приложения с помощью терминала и введите:
Это удалит модуль, который вы удалили из файла. Вы увидите, что он был удален в терминале:
Обратите внимание, что этот метод также извлекает все обновления для других модулей в вашем подфайле. Вы можете или не можете этого хотеть.
источник
pod install
для добавления / удаления модулей. Это специально для того, чтобы избежать обновления, как вы сказали здесь. Вы можете прочитать больше в их «Руководствах» по этой самой теме ... guides.cocoapods.org/using/pod-install-vs-update.htmlИспользуйте эти команды терминала (не забудьте использовать sudo в начале новой строки):
Удалить список один за другим, как это:
источник
Мне удалось удалить мои модули в проекте с помощью приложения CocoaPods (версия 1.5.2). После этого я только удалил в папке файлы podfile, podfile.lock и xcworkspace.
источник
графическое представление подробно
источник
Я не думаю, что вам нужно больше дезинтегрировать. Я смог сделать это с помощью следующей команды в терминале:
под установку
и он автоматически удаляет те, которых больше нет в подфайле
источник