Advertencia de Cocoapods: CocoaPods no estableció la configuración básica de su proyecto porque su proyecto ya tiene un conjunto de configuración personalizado

331

Después de ejecutar a pod installen la base de mi proyecto, aparece el siguiente error:

CocoaPods no estableció la configuración básica de su proyecto porque su proyecto ya tiene un conjunto de configuración personalizado. Para que la integración CocoaPods de trabajo en absoluto, ajuste o bien las configuraciones base del objetivo BluePlaquesLondonFrameworkde Pods/Target Support Files/Pods/Pods.debug.xcconfigo incluir el Pods/Target Support Files/Pods/Pods.debug.xcconfigen su configuración de generación.

Esto probablemente suena como una pregunta tonta, pero ¿cómo configuro la configuración base para un objetivo?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile es el Podfile que está causando este problema.

http://github.com/seanoshea/BluePlaquesLondon en la rama de iOS 8 es el Podfile en cuestión si tiene curiosidad por ver cómo se ve el proyecto.

seanoshea
fuente
2
Esto es un poco fuera de tema, pero; Solo quiero advertirte sobre iOS-KML-Framework. Utiliza la versión 1.5 de TBXML, que es un poco defectuosa. Si obtiene XML con formato incorrecto en su feed, su aplicación se bloqueará. Es posible que desee hacer una bifurcación privada para iOS-KML-Framework donde elimine el '1.5' de la especificación de pods, y solo use el HEAD of TBXML. Eso parece solucionar muchos de los problemas.
churowa
Actualice su título para incluir más de la advertencia real. Por ejemplo: "CocoaPods no configuró la advertencia de configuración".
David James
Actualizó el título @DavidJames. Aunque feliz de alterarlo nuevamente si lo crees un poco prolijo.
seanoshea
44
Ahora es uno de los títulos más largos que he visto en stackoverflow.
Klaas
github.com/CocoaPods/CocoaPods/issues/2633 tiene una buena solución: establezca todas las configuraciones en None, luego ejecute "pod install"
David Airapetyan el

Respuestas:

583

Tuve el mismo problema, pero en Xcode 6.1.1: lo que me solucionó fue cambiar la configuración del archivo de configuración Nonepara los dos objetivos relacionados con Pods y luego pod installvolver a ejecutarlo .

La configuración del archivo de configuración se encuentra seleccionando el proyecto (no el objetivo) y luego la pestaña Información.

TimD
fuente
144
Esta configuración se encuentra seleccionando el proyecto (no el objetivo) y luego la pestaña Información.
Grav
34
Ayuda a realizar el cambio, seguido de salir de xcode, ejecutar pod instally volver a abrir. No mantenga abierto Xcode durante ese tiempo.
Sebastian Roth, el
1
Esto me lo arregló. mi configuración apuntaba a un antiguo nombre xcconfig, que cambió desde que agregué dos objetivos explícitos en mi Podfile (uno para el proyecto principal y otro para probar), lo que provocó la generación de nuevos archivos de configuración con diferentes nombres.
qix
10
Para aquellos que tenían la misma preocupación que yo, establecer eso para Noneromper cosas ... lo subsiguiente pod installlo resuelve todo.
Mateo
44
¿Dónde está esta configuración en xcode 10? Revisé todas las pestañas, no pude encontrarlo
JenonD
168

No juegues, reinicio.

Paso a paso

  1. Mostrar navegador de proyectos
  2. Seleccionar proyecto
  3. Seleccione Info
  4. En Configuraciones , seleccione cada una, una a la vez (Depurar, ApplicationUnitTest, Release, etc.), y para cada destino dentro de dicha configuración, establezca la configuración en Ninguna .
  5. Asegúrese de que, según el archivo de configuración, se lee 0 Configuraciones establecidas o Sin configuraciones establecidas para cada configuración. Ese es el quid. 0 Configuraciones establecidas
  6. Salir de Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

Una vez que haya permitido pod installen el paso 7hacer su magia, puede usar una configuración personalizada y cambiar sus configuraciones.

Arquitecto Swift
fuente
10
esta debería ser una respuesta aceptada, lo anterior tampoco era obvio para mí.
Evgeniy Kleban
El uso de la Podsconfiguración, como se sugiere en otras respuestas, no resolvió mi problema en lo más mínimo: la configuración de compilación ya coincidía Pods.debugy Pods.release, que era el problema. Lo que hizo fue 0 Configuraciones establecidas para cada configuración. No es la misma respuesta en absoluto.
SwiftArchitect
Esto funcionó para mí también. Solo para tener en cuenta, debe cambiar de objetivos a proyectos para ver las configuraciones. Busqué esto durante mucho tiempo hasta que me topé con el menú desplegable.
marty331
Votaría esto cien veces si pudiera. Después de 30 horas de lucha contra el proceso de compilación de Jenkins después de fusionar 4 sucursales de desarrolladores agregando 3 extensiones a una aplicación de iOS con archivos de configuración personalizados, bombardeando el script check manifest.lock de las vainas de cacao, esto finalmente solucionó el problema. (entre muchas otras cosas, pero esta fue la solución final). : Saludos:
Augie
"[!] No se puede determinar la versión de Swift para las siguientes cápsulas:"
Richard
138

Vaya a XCode y abra la configuración de su proyecto y, en la pestaña Información, verá "Configuraciones", donde puede establecer un archivo de configuración para depurar y liberar. Aparentemente ya los configuró en alguna configuración personalizada y CocoaPods quiere / necesita que use la configuración de Pods.

Aquí hay una captura de pantalla

cuarc
fuente
77
Tenga en cuenta que esto no resuelve el problema si realmente necesita usar una configuración personalizada para un propósito real. Ver este tema abierto .
funroll
1
Nada ha cambiado en Xcode 6 para que esta respuesta sea incorrecta
quark
Otro problema pero resolvió mi problema por mí. Estaba usando vainas de cacao con pruebas de IU y ¡esto me salvó la vida! Gracias.
Akshit Zaveri
70

Me encontré con el mismo problema. Se construiría en el simulador pero no en mi dispositivo. Ninguna de las respuestas resolvió esto por mí. Esto es lo que hice juntando algunas respuestas:

  1. Cambié mi archivo de pods para usar un objetivo específico:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. Ran pod install

  3. Eso da un error: [!] 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. Vaya a Configuración del proyecto y haga clic en la pestaña Información. Habrá un error donde no puede encontrar el archivo de configuración. Establézcalo en "Ninguno" para depurar y liberar.
  5. Ejecute la instalación de pod nuevamente
  6. Limpiar y construir. Esto funciona.
Chris Fellows
fuente
1
Entre los pasos 4 y 5, siempre cierro xcode. He tenido problemas cuando xcode se está ejecutando durante la instalación de pod.
Ray Hunter
Me encontré con esto creando esquemas personalizados. Lo anterior también funciona en Xcode 7. Recomiendo consejos de @srayhunter para cerrar Xcode durante una instalación.
subv3rsion
1
Desearía poder votar más de una vez. Esto me atrapa cada vez.
Bill Burgess
16

También debe asegurarse de no tener vainas en la raíz Podfile, debe definir todas las vainas que se utilizan en muchos objetivos como ese:

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

También es posible que deba eliminar libPods.ay libPods-app.ade las dependencias de destino, realizar una limpieza y luego pod installvolver a ejecutar .

Redetección
fuente
10

Acabo de encontrarme con este problema después de agregar algunas configuraciones de compilación personalizadas. Pude ver debajo:

Pods (target) > Target Support Files > Pods

que realmente había creado los nuevos xcconfigarchivos que coincidían con las nuevas configuraciones de compilación, pero por alguna razón no pude seleccionarlos en el objetivo del proyecto de mi aplicación.

Lo que me solucionó fue instalar y usar cocoapods-desintegrate :

gem install cocoapods-deintegrate

y luego ejecuta:

pod deintegrate

seguido por:

pod install
Hodson
fuente
2
Esto me ayudo.
Krishnan
7

La línea en el podfile que genera un problema es: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Simplemente haga esto: link_with ['BluePlaquesLondon'] o esto (funcionó en mi caso, espero que lo haga en el suyo :-)):

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
fred foc
fuente
Esto funcionó muy bien para mí. Ya tenía las configuraciones de Cocoapods configuradas según la respuesta aceptada, pero aún veía la advertencia. Entonces, ¿por qué funciona esto, cuando tener link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']no funciona?
churowa
6

Si agregó una configuración de compilación personalizada a su proyecto existente, Cocoapods se quejará al respecto.

Cocoapods creará automáticamente archivos xcconfig en el directorio Pods/Target Support Files/<build_target>siguiendo el patrón de nomenclatura Pods-<build_target>.<build_config>.xcconfig.

Solo asegúrese de agregar manualmente esos archivos a su proyecto en Xcode (en el directorio Pods, ¡pero no dentro del proyecto Pods!). Una vez que se incluyen esos archivos, seleccione su proyecto en Xcode, vaya a la pestaña "Información" y expanda su configuración personalizada. Seleccione el archivo xcconfig apropiado para cada destino en su configuración personalizada.

diegoreymendez
fuente
4

Tuve el mismo error durante la instalación del pod. Intenté todo (reinstalar pod, actualizar todas las gemas, etc.) y encontré que la solución funcionó en mi caso. Hubo un problema por cambiar el nombre del objetivo. En este caso la solución es simple:

  1. Haga clic en Producto -> Esquema -> Administrar esquemas ...
  2. Haga clic en su objetivo en la lista y elimínelo con el signo "-" en la parte inferior de la ventana.
  3. Haga clic en "+" para agregar el objetivo nuevamente a la lista. Elija el objetivo y el nombre correctos.

Después de todo, todo debería funcionar.

lukszar
fuente
3
  1. Agregue los archivos xcconfig relevantes a su proyecto. Cocoapods los habrá creado, pero no puede configurarlos en Xcode hasta que estén en el proyecto.
    • Probablemente desee agregarlos al grupo Pods donde están los otros archivos xcconfig de pods. Haga clic derecho y agregue archivos.
    • Busque archivos xcconfig en la carpeta de su proyecto o busque Pods/Target Support Files/[TARGET_NAME]/(Tengo diferentes cocoapods configurados para cada destino (la extensión y el proyecto principal pueden ser ligeramente diferentes en su caso)
  2. Vaya a las configuraciones del proyecto en la Información de su proyecto principal
  3. Para cada objetivo y configuración, configure la configuración de pods adecuada.
  4. pod install de nuevo y no deberías ver ningún error.
Joseph Lord
fuente
3

Moví las vainas en Podfile fuera del objetivo. El archivo cambia de esto:

# 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

A esto:

# 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
Manuel BM
fuente
2

En caso de que esté utilizando una configuración personalizada, puede seguir la sugerencia en la advertencia e incluir la configuración de Pod en su archivo de configuración

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

Esto NO detendrá las advertencias, pero le permitirá usar su configuración privada (hay un error abierto en la advertencia con el proyecto CocoaPods) https://github.com/CocoaPods/CocoaPods/issues/2633

Zeev Vax
fuente
2
Gracias por agregar una respuesta que no sacrifique la configuración actual de su proyecto.
Dan Leonard
1

Entonces, para mí, el problema se debió a que los nombres de los archivos xcconfig antes mencionados se cambiaron antes de que se realizara la actualización de Swift 3.

Algo no estaba sincronizado, por lo que Cocoapods creó una sección de carpeta 'Referencias recuperadas' con los viejos archivos nombrados, y se vinculó a ellos.

Para arreglar esto, yo:

  1. Se eliminó la carpeta 'Referencias recuperadas' y los archivos antiguos que contienen .xcconfig de Xcode y el sistema de archivos
  2. Salir de Xcode

  3. Ejecute la instalación de pod

Todo fue manejado por mí después de eso, y las advertencias desaparecieron.

Harry Bloom
fuente
0

Pude construir el proyecto tocado por este problema en XCode 6 al:

  • seleccionando Proyecto desde el Navegador de proyectos
  • elegir Proyecto en lugar de Destino
  • yendo a la pestaña Información
  • eligiendo Pods. (debug / release) Archivos de configuración del cuadro combinado para las configuraciones respectivas.

Espero que esto ayude a alguien.

Miguel
fuente
0

Esto me sucedió porque ya tenía una configuración de Pod. Soy nuevo en el desarrollo de iOS, estaba buscando instrucciones para instalar Alamofire + SwiftyJSON y terminé instalando las bibliotecas más de una vez, sin darse cuenta. Para mí, lo que funcionó fue: en la carpeta "Target Support Files" en el proyecto "Pods", seleccioné los dos archivos .xcconfig correctos y los arrastré a la carpeta "Pods" de mi proyecto de aplicación. Esto permitió la selección de los archivos de configuración correctos en la configuración base.

Pero luego, si ejecuto "pod install" nuevamente, la advertencia cambiará al archivo .xcconfig anterior. Intento eliminar los archivos y el marco anterior del proyecto principal, pero cuando ejecuté el comando anterior una vez más, me dio la misma advertencia y creé el archivo "Pods.framework" en la carpeta "Pods" de mi proyecto de aplicación. Lo ignoré y parece estar funcionando bien, a pesar de los dos marcos. No sé si es correcto, y una solución, si existe, sería bienvenida.

Pablo
fuente
Esto realmente no responde la pregunta. Si tiene una pregunta diferente, puede hacerla haciendo clic en Hacer pregunta . También puede agregar una recompensa para llamar más la atención sobre esta pregunta una vez que tenga suficiente reputación .
Petro Korienev el
Gracias por la explicación Petro. Simplemente quería compartir el resultado que funcionó para mí (con advertencias, pero aún así), pero tendré más cuidado en el futuro.
Pablo
0

Tuve un error:

diff: /../Podfile.lock: No existe tal archivo o directorio diff: /Manifest.lock: No existe tal archivo o error de directorio: El sandbox no está sincronizado con el Podfile.lock.

Saqué la solicitud de Bitbucket por primera vez. Limpié mi proyecto e intenté todo (instalación de pod, actualización de pod, etc.) pero ninguna de las respuestas anteriores funcionó para mí. Luego, simplemente verifiqué la ruta donde estaba instalando el pod y lo corregí e instalé nuevamente, simplemente funcionó. Asegúrese de dar la ruta justo antes de que existan .xcodeproj o .xcworkspace (si ya está allí). Puede ser que alguien se beneficie de esto.

Maurya simple
fuente
-2

La solución más simple para esto (después de tener este problema varias veces):

  1. Elimine Podfile & Podfile.lock de su biblioteca de proyectos (guarde Podfile en algún lugar para poder pegarlo fácilmente en un nuevo Podfile)
  2. ejecuta 'pod init'
  3. Edite el 'Podfile' a su voluntad (agregue los pods que está utilizando)
  4. ejecuta 'pod install'

Esto recrearía todo y funcionaría siempre en minutos (sin perder tiempo para realizar ingeniería inversa del "error").

Idan
fuente