Tengo un iOS/OS X Xcode proyectos, en el que estoy usando CocoaPods, y me parece que no puede averiguar cómo agregar mis propias configuraciones del proyecto (además De Debug y Release) sin la voladura de la construcción.

En el proyecto, tengo un número de objetivos, para aplicaciones en ambas plataformas y su aplicación de extensiones. El Xcode área de trabajo, por supuesto, también tiene las Vainas proyecto.

Porque el proyecto se basa en objetivos para iOS y Mac, yo uso el CocoaPods «objetivos» para el grupo de sus vainas juntos. Mi Podfile se ve algo como esto:

source 'https://github.com/CocoaPods/Specs.git'

target :iOS do
  platform :ios, '7.1'
  link_with 'iOS', 'NozbeToday', 'NozbeShare', 'NozbeWatch'

  # pods...
end

target :Mac do
  platform :osx, '10.9'
  link_with 'Mac'

  # pods...
end

Ahora aquí es donde me encuentro con un problema. Hasta ahora he tenido el valor de «Depuración» y «Liberación» de las configuraciones en mi proyecto. Yo quería cambiar y agregar algunos nuevos para diferentes provisioning profile/paquete de combinación de ID.

… y estoy atascado. Yo no puedo averiguar cómo hacerlo.

Primer signo de que el problema era una advertencia pod install vomitada por cada objetivo/configuración de combinación:

[!] CocoaPods no coloque la base de la configuración de su proyecto
debido a que el proyecto ya tiene una costumbre conjunto de configuración. En orden para
CocoaPods de integración para el trabajo, por favor, configure la base de
configuraciones de la meta NozbeToday a Pods/Target Support
Files/Pods-iOS/Pods-iOS.dev debug.xcconfig
o incluir la
Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig en
la configuración de generación.

Yo no podía entender lo que significa y cómo solucionarlo. De cualquier manera, el proyecto no construir — en el mejor de los casos me gustaría conseguir un enlazador de error diciendo que no puede encontrar Pods-something.a

InformationsquelleAutor radex | 2015-05-07

2 Comentarios

  1. 42

    OK, así que a mitad de camino a través de la escritura esta pregunta me imaginé a mí mismo (yay patito de goma). Aquí está la solución para las próximas generaciones:

    Esencialmente, usted tiene que añadir una explícita la dependencia de las Vainas de destino a su sistema de aplicación.

    La forma de hacerlo, es: editar su sistema de aplicación, vaya a la sección de generación, y añadir las Vainas de destino por encima de la aplicación de destino. Usted debe ver algo como esto:

    Cómo personalizar las configuraciones de proyectos de Xcode cuando se utiliza CocoaPods?

    Y se acaba el trabajo.


    Como para el CocoaPods advertencias sobre pod install, usted necesita usar el xcconfig los archivos generados por el CP para cada uno de sus Xcode configuraciones. La forma de hacerlo es:

    • encontrar el .xcconfig archivos en Pods/Target Support Files
    • arrastrar y soltar a la «Vainas» grupo en su proyecto de Xcode (agregar la referencia solamente. No copia a destino o añadir a la compilación)
    • Haga clic en el proyecto en el navegador de proyectos, y seleccione el proyecto en sí (no uno de los objetivos). Ir a la Información, y en virtud de las Configuraciones de conjunto de la derecha .xcconfigs para cada configuración y meta en el «Basado en el archivo de Configuración» de la columna.

    También necesita algo como esto en su Podfile dejar CocoaPods saber que de su Xcode las configuraciones de «debug» (unoptimized), que son «liberación»:

    project '1Nozbe', {
      'iOS 1 Dev Debug' => :debug,
      'iOS 2 Dev AdHoc' => :release,
      'iOS 3 Release Debug' => :debug,
      'iOS 4 Release AdHoc' => :release,
      'iOS 5 Release AppStore' => :release,
    }

    No exactamente relacionados con CocoaPods, pero si usted tiene algunos otros (sub-proyecto) dependencias distinta de la CP, usted también tendrá que hacer dos cosas:

    • agregar dependencias explícitas en el sub-objetivo del proyecto (como en la imagen de arriba)
    • cambiar el nombre/agregar configuraciones en el sub-proyecto fin de que ellos son el mismo que el de su principal proyecto. (De lo contrario, Xcode no sabe qué configuración utilizar con el sub-proyecto)
    • cambiar nombre/agregar configuraciones en el sub-proyecto fin de que ellos son el mismo que el de su principal proyecto. (De lo contrario, Xcode no sabe qué configuración utilizar con el sub-proyecto) Hizo usted encontrará esto en un documento de referencia o simplemente basado en la experiencia?
    • esto es, sólo se basa en el juicio&error, no diciendo que no se puede hacer.
    • [!] xcodeproj se cambió el nombre a project. Por favor, actualice su Podfile en consecuencia.
    • También he añadido el mismo construir configuraciones con el mismo nombre manualmente a las Vainas de proyecto y, a continuación, hizo un pod install.Esta versión actualizada de mi .xcconfig archivos de nombres. Luego he añadido la versión actualizada de nombres como se mencionó en la respuesta.
    • Este xcodeproj '1Nozbe', { 'iOS 1 Dev Debug' => :debug, 'iOS 2 Dev AdHoc' => :release, 'iOS 3 Release Debug' => :debug, 'iOS 4 Release AdHoc' => :release, 'iOS 5 Release AppStore' => :release } Fue el de la totalidad de la cosa, en caso de que alguien está usando Cocoapods versión después de 1.0, el xcodeproj es obsoleto ahora el nombre es project Gracias!
  2. 9

    Añadir esta línea en su fichero de configuración, como importar un archivo de encabezado:

    #include "Pods/Target Support Files/Pods/Pods.debug.xcconfig"

    NOTA: es #include, no #import

    • Funciona muy bien para mí
    • no más trabajar con la nueva versión de Xcode, cualquier explicación?

Dejar respuesta

Please enter your comment!
Please enter your name here