Предупреждение Cocoapods - CocoaPods не установил базовую конфигурацию вашего проекта, потому что ваш проект уже имеет пользовательский набор настроек

331

После того, как я выполню pod installв основе моего проекта, я получаю следующую ошибку:

CocoaPods не установил базовую конфигурацию вашего проекта, потому что ваш проект уже имеет пользовательский набор настроек. Для интеграции CocoaPods работать на всех, пожалуйста , либо установить базовые конфигурации мишени , BluePlaquesLondonFrameworkчтобы Pods/Target Support Files/Pods/Pods.debug.xcconfigили включать Pods/Target Support Files/Pods/Pods.debug.xcconfigв конфигурации сборки.

Возможно, это звучит глупо, но как мне настроить базовую конфигурацию для цели?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile - это Podfile, который вызывает эту проблему.

http://github.com/seanoshea/BluePlaquesLondon в ветке iOS 8 - это вопрос подфайла, если вам интересно посмотреть, как выглядит проект.

seanoshea
источник
2
Это немного не по теме, но; Я просто хочу предупредить вас о iOS-KML-Framework. Он использует версию 1.5 TBXML, которая немного глючит. Если вы получите неверный XML в своем фиде, ваше приложение будет зависать. Возможно, вы захотите создать частный форк для iOS-KML-Framework, где вы удалите «1.5» из подспецификации и просто используете HEAD TBXML. Кажется, это решает многие проблемы.
Чурова
Пожалуйста, обновите свой заголовок, чтобы включить больше фактического предупреждения. Например: «CocoaPods не установил предупреждение о конфигурации».
Дэвид Джеймс
Обновлен заголовок @DavidJames. Рад изменить это снова, если вы думаете, что это немного многословно, хотя.
seanoshea
4
Теперь это одно из самых длинных названий, которое я видел на stackoverflow.
Клаас
github.com/CocoaPods/CocoaPods/issues/2633 имеет хороший обходной путь - установите все конфиги на None, затем запустите «pod install»
Давид Айрапетян

Ответы:

583

У меня была та же проблема, но в Xcode 6.1.1 - для меня исправлено изменение настроек файла конфигурации Noneдля двух целей, связанных с модулями, а затем pod installповторный запуск .

Параметр файла конфигурации можно найти, выбрав проект (не цель), а затем вкладку «Информация».

TimD
источник
144
Этот параметр можно найти, выбрав проект (не цель), а затем вкладку «Информация».
Grav
34
Это помогает внести изменения, после чего выйти из xcode, запустить pod install, затем открыть заново. Не держите Xcode открытым в течение этого времени.
Себастьян Рот
1
Это исправило это для меня. моя конфигурация указывала на старое имя xcconfig, которое изменилось, так как я добавил две явные цели в свой Podfile (один для основного проекта, другой для тестирования), что привело к генерации новых файлов конфигурации с разными именами.
qix
10
Для тех, у кого было то же беспокойство, что и у меня, что установка, Noneкоторая сломала бы вещи ... последующая pod installразбирает все.
Мэтью
4
где этот параметр в xcode 10? Перебрал все вкладки, не смог его найти
JenonD
168

Не возиться, Сброс.

Шаг за шагом

  1. Показать навигатор проекта
  2. Выберите проект
  3. Выбрать Info
  4. В разделе «Конфигурации» выберите каждую по одному (Debug, ApplicationUnitTest, Release и т. Д.), И для каждой цели в указанной конфигурации задайте для конфигурации значение « Нет» .
  5. Убедитесь, что для параметра « На основе файла конфигурации» указано « 0 наборов настроек» или « Нет настроек» для каждой конфигурации. Это суть. 0 настроек
  6. Выйти из Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

После того, как вы позволили pod installна шаге 7творить чудеса, вы сможете использовать пользовательский конфиг и изменять свои конфигурации.

SwiftArchitect
источник
10
Это должен быть принят ответ, предыдущий не был очевиден для меня ни.
Евгений Клебан
Использование Podsконфигурации, как было предложено в других ответах, ни в малейшей степени не помогло решить мою проблему: параметры сборки уже совпадали с Pods.debug& Pods.release, что было проблемой. Что было сделано 0 Конфигурации для каждой конфигурации. Не тот же ответ вообще.
SwiftArchitect
Это сработало и для меня. Просто чтобы заметить, вы должны перейти от Целей к Проектам, чтобы увидеть Конфигурации. Я долго искал это, пока не наткнулся на выпадающий список.
marty331
Я бы проголосовал за это сто раз, если бы мог. После 30 часов борьбы с процессом сборки Jenkins после слияния 4-х веток разработчиков, добавления 3-х расширений в приложение iOS с настраиваемыми файлами конфигурации, бомбардировки скрипта check manifest.lock из какао-бобов, это, наконец, решило проблему. (среди множества других вещей, но это было последнее исправление). : Приветствия:
Augie
«[!] Невозможно определить версию Swift для следующих модулей:»
Ричард,
138

Зайдите в XCode и откройте настройки своего проекта, и на вкладке Info вы увидите «Конфигурации», где вы можете установить файл конфигурации для Debug и Release. Вы, очевидно, уже установили их для некоторой пользовательской конфигурации, и CocoaPods хочет / нуждается в том, чтобы вы использовали конфигурацию Pods.

Вот скриншот

кварк
источник
7
Обратите внимание, что это не решает проблему, если вам действительно нужно использовать пользовательскую конфигурацию для реальных целей. Смотрите этот открытый вопрос .
funroll
1
Ничего не изменилось в Xcode 6, чтобы сделать этот ответ неправильным
quark
Еще одна проблема, но она решила мою проблему для меня. Использовал какао-стручки с тестами пользовательского интерфейса, и это спасло мне жизнь! Спасибо.
Акшит Завери
70

Столкнулся с той же проблемой. Это будет основано на симуляторе, но не на моем устройстве. Ни один из ответов не решил это для меня. Вот что я сделал, собрав несколько ответов вместе:

  1. Изменен мой файл pods для использования определенной цели:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. Побежал установить

  3. Это дает ошибку: [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `MyProject` to `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` or include the `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` in your build configuration.
  4. Зайдите в настройки проекта и нажмите на вкладку Информация. Там будет ошибка, когда он не может найти файл конфигурации. Установите «Нет» для отладки и выпуска.
  5. Запустите pod install еще раз
  6. Очистить и построить. Это работает.
Крис Феллоуз
источник
1
Между шагами 4 и 5 я всегда закрываю xcode. У меня были проблемы, возникающие при запуске xcode во время установки модуля.
Рэй Хантер
Просто наткнулся на это сам создавая нестандартные схемы. Выше также работает в Xcode 7. Я бы порекомендовал @srayhunter совет по закрытию Xcode во время установки.
subv3rsion
1
Я хотел бы проголосовать больше, чем один раз. Это получает меня каждый раз.
Билл Берджесс
16

Вы также должны убедиться, что у вас нет модулей в корне Podfile, вы должны определить все модули, которые используются во многих целях:

def shared_pods
  pod 'ReactiveCocoa', '~> 2.5'
end
target 'app' do
  shared_pods
  pod 'RestKit'
end
target 'tests' do
  shared_pods
  pod 'OCMock'
end

Вам также может понадобиться удалить libPods.aи libPods-app.aиз целевых зависимостей, выполнить очистку и затем запустить pod installснова.

повторное обнаружение
источник
10

Я только столкнулся с этой проблемой после добавления некоторых пользовательских конфигураций сборки. Я мог видеть под:

Pods (target) > Target Support Files > Pods

что он на самом деле создал новые xcconfigфайлы, которые соответствуют новым конфигурациям сборки, но по какой-то причине я не смог выбрать их в целевом проекте моего приложения.

Для меня было исправлено установить и использовать cocoapods-deintegrate :

gem install cocoapods-deintegrate

и затем запустите:

pod deintegrate

с последующим:

pod install
Ходсон
источник
2
Это помогло мне.
Кришнан
7

Строка в подфайле, которая генерирует проблему: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Просто сделайте это: link_with ['BluePlaquesLondon'] или вот это (сработало в моем случае, надеюсь, оно будет у вас :-)):

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

xcodeproj 'BluePlaquesLondon.xcodeproj'
inhibit_all_warnings!
link_with ['BluePlaquesLondon']

def import_pods

     pod 'TTTAttributedLabel', '~> 1.10.1'
     pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.9'
     pod 'Google-Maps-iOS-SDK'
     pod 'IntentKit'
     pod 'HCViews'
     pod 'SVProgressHUD', :head
     pod 'iRate'
     pod 'iOS-KML-Framework', :git => 'https://github.com/FLCLjp/iOS-KML-Framework.git'

end

import_pods

target "BluePlaquesLondonFramework" do
    import_pods
    pod 'Kiwi'
end
Фред Фок
источник
Это прекрасно сработало для меня. Я уже настроил конфигурации Cocoapods в соответствии с принятым ответом, но все еще видел предупреждение. Так почему же это работает, когда link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']нет?
Чурова
6

Если вы добавили пользовательскую конфигурацию сборки в существующий проект, Cocoapods будет жаловаться на это.

Cocoapods автоматически создаст файлы xcconfig в каталоге, Pods/Target Support Files/<build_target>следуя схеме именования Pods-<build_target>.<build_config>.xcconfig.

Просто убедитесь, что вы вручную добавили эти файлы в свой проект в Xcode (в каталоге Pods, но не внутри проекта Pods!). Как только эти файлы включены, выберите ваш проект в XCode, перейдите на вкладку «Информация» и разверните свою пользовательскую конфигурацию. Выберите соответствующий файл xcconfig для каждой цели в вашей пользовательской конфигурации.

diegoreymendez
источник
4

У меня была такая же ошибка при установке модуля. Я перепробовал все (переустановил pod, обновил все гемы и т. Д.) И обнаружил, что решение работает в моем случае. Возникла проблема из-за изменения имени цели. В этом случае решение простое:

  1. Нажмите Product -> Scheme -> Manage Schemes ...
  2. Нажмите на цель в списке и удалите ее со знаком «-» в нижней части окна.
  3. Нажмите «+», чтобы добавить цель обратно в список. Выберите правильную цель и имя.

Ведь все должно работать.

lukszar
источник
3
  1. Добавьте соответствующие файлы xcconfig в ваш проект. Cocoapods создаст их, но вы не можете установить их в XCode, пока они не будут в проекте.
    • Возможно, вы захотите добавить их в группу Pods, где находятся другие файлы pcod xcconfig. Щелкните правой кнопкой мыши и добавьте файлы.
    • Поиск файлов xcconfig в папке вашего проекта или поиск Pods/Target Support Files/[TARGET_NAME]/(у меня настроены разные cocoapods для каждой цели (расширение и основной проект, это может немного отличаться в вашем случае)
  2. Перейти к конфигурации проекта в Инфо вашего основного проекта
  3. Для каждой цели и конфигурации установите соответствующую конфигурацию модулей.
  4. pod install снова, и вы не должны видеть ошибок.
Джозеф лорд
источник
3

Я переместил стручки в Подфиле снаружи от цели. Файл изменяется из этого:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'MyProject' do

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

end

К этому:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

target 'MyProject' do

end
Мануэль Б.М.
источник
2

Если вы используете пользовательскую конфигурацию, вы можете следовать предложению в предупреждении и включить конфигурацию Pod в свой файл конфигурации.

     #include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"

Это НЕ остановит предупреждения, но позволит вам использовать вашу личную конфигурацию (есть открытая ошибка в предупреждении с проектом CocoaPods) https://github.com/CocoaPods/CocoaPods/issues/2633

Зеев Вакс
источник
2
Спасибо за добавление ответа, который не жертвует вашей текущей настройкой проекта.
Дэн Леонард
1

Так что для меня проблема была в том, что вышеупомянутые имена файлов xcconfig были изменены до обновления Swift 3.

Что-то было не синхронизировано, поэтому Cocoapods создал раздел папки «Восстановленные ссылки» со старыми именованными файлами и связал их с ними.

Чтобы это исправить, я:

  1. Удалил папку «Восстановленные ссылки» и содержащие старые файлы .xcconfig из Xcode и файловой системы
  2. Выйти из Xcode

  3. Запустить установку pod

После этого все было обработано для меня, и предупреждения исчезли.

Гарри Блум
источник
0

Мне удалось построить проект, затронутый этой проблемой, на XCode 6:

  • Выбор проекта из Навигатора проектов
  • выбирая проект вместо цели
  • перейти на вкладку Информация
  • выбирая файлы конфигурации (отладка / выпуск) из выпадающего списка для соответствующих конфигураций.

Надеюсь, это кому-нибудь поможет.

Майкл
источник
0

Это случилось со мной, потому что у меня уже была конфигурация Pod. Я новичок в разработке для iOS, искал инструкции по установке Alamofire + SwiftyJSON и закончил установку библиотек несколько раз, случайно. Для меня это сработало: в папке «Target Support Files» в проекте «Pods» я выбрал два правильных файла .xcconfig и перетащил их в папку «Pods» моего проекта приложения. Это позволило выбрать правильные файлы конфигурации в базовой конфигурации.

Но затем, если я снова запущу «pod install», предупреждение изменится на предыдущий файл .xcconfig. Я пытаюсь удалить файлы и старый фреймворк из основного проекта, но когда я еще раз выполнил предыдущую команду, вывел мне то же самое предупреждение и создал файл «Pods.framework» в папке «Pods» моего проекта приложения. Я проигнорировал это, и это, кажется, работает хорошо, несмотря на две структуры. Я не знаю, правильно ли это, и решение, если оно существует, будет приветствоваться.

Pablo
источник
Это на самом деле не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав Задать вопрос . Вы также можете добавить вознаграждение, чтобы привлечь больше внимания к этому вопросу, когда у вас будет достаточно репутации .
Петр Кориенев
Спасибо за объяснение, Петр. Я просто хотел поделиться результатом, который работал для меня (с предупреждениями, но все же), но я буду более осторожен в будущем.
Пабло
0

У меня была ошибка:

diff: /../Podfile.lock: такого файла или каталога нет. diff: /Manifest.lock: такого файла или каталога нет: песочница не синхронизирована с Podfile.lock.

Я впервые вытащил запрос из bitbucket. Я очистил свой проект и попробовал все (установка pod, обновление pod и т. Д.), Но ни один из приведенных выше ответов не помог мне. Затем я просто проверяю путь, по которому я устанавливал модуль, исправлял его и устанавливал снова, он просто работал. Убедитесь, что указали путь непосредственно перед тем, где существуют .xcodeproj или .xcworkspace (если он уже существует). Может быть, кто-то получит выгоду от этого.

Простая Маурья
источник
-2

Самое простое решение для этого (после многократного возникновения этой проблемы):

  1. Удалите Podfile & Podfile.lock из вашей библиотеки проекта (сохраните Podfile где-нибудь, чтобы вы могли легко вставить в новый Podfile)
  2. запустить 'pod init'
  3. Отредактируйте «Podfile» по своему желанию (добавьте используемые вами модули)
  4. запустить 'pod install'

Это воссоздает все и работает всегда в считанные минуты (не тратя время на обратный инжиниринг «ошибки»).

Идан
источник