Acabo de configurar three different configurations en mi proyecto para debug
preview
y release
. No en Xcode hay una opción para especificar diferentes archivos .xconfig
por configuración. Ahora me pregunto en qué circunstancias deberían/podrían usarse y cuáles son sus ventajas simplemente editando el build settings
por configuración.Cuándo utilizar archivos .xcconfig
Respuesta
Usa los archivos xcconfig si cambias la misma configuración de compilación para cada proyecto que crees. Coloque la configuración de compilación que está cambiando en el archivo xcconfig. Al usar un archivo xcconfig, puede evitar editar esas configuraciones de compilación cada vez que crea un proyecto.
Tener la opción de utilizar diferentes archivos xcconfig para cada configuración de compilación le permite colocar la configuración de compilación de depuración que está cambiando constantemente en un archivo xcconfig y colocar la configuración de compilación de versiones que está modificando en otro archivo xcconfig. Utilice varios archivos xcconfig si la configuración de compilación que está modificando tiene valores diferentes para las compilaciones de depuración y liberación o si modifica algunas configuraciones de compilación solo para compilaciones de depuración y otras configuraciones de compilación solo para compilaciones de versiones.
Una forma en que he usado los archivos xcconfig es configurar diferentes BundleId para aplicaciones de iPhone. De esta forma, puede tener diferentes aplicaciones habilitadas con diferentes características/servidores. Muy útil. Implica usar un nombre de variable para BundleId.
¿Podría agregar un ejemplo? – Besi
No soy yo a quien has preguntado sobre un ejemplo @Besi pero me gustaría explicar por qué el cambio de BundleId es útil al menos para mí.
Cuando tengo diferentes requisitos para "Desarrollo", "Ad Hoc", "App Store", por ejemplo, tengo que enviar Notificaciones Push, por lo que el certificado push será diferente según la versión.
En este caso puedo hacer 3 esquemas de XCode diferentes y dependiendo del esquema elegido, al compilar el identificador del paquete cambiará para que se produzca un tipo diferente de versión.
Agregue a esto el hecho de que puede usar su xcconfig para elegir la "Identidad del signo de código" y prácticamente todas las configuraciones que pueda imaginar. De esta manera es más correcto que tener objetivos diferentes para cada versión y con diferentes archivos plist y configuraciones de compilación, ya que evita la duplicación y puede personalizar la forma en que las configuraciones deben anularse entre sí.
Disculpa si esto es muy intrincado, traté de responder la pregunta original en el proceso.
¿Cómo cambia exactamente el identificador del paquete basado en el esquema de Xcode? ¿Acciones previas a la construcción? – Legoless
- 1. Cuándo utilizar IList y cuándo utilizar List
- 2. Cuándo utilizar importaciones absolutas
- 3. ¿Cómo puedo usar archivos .xcconfig en Xcode 4?
- 4. Cuándo utilizar retener y cuándo utilizar la copia
- 5. Cuándo utilizar WCF/REST
- 6. ¿Cuándo NO utilizar NoSQL?
- 7. Cuándo utilizar Dependency Injection
- 8. Cuándo utilizar un HashTable
- 9. Cuándo utilizar la opción
- 10. Cuándo utilizar el operador "^"
- 11. Cuándo utilizar NSNotificationCenter
- 12. cuándo utilizar hibernate.connection.provider_class
- 13. Cuándo utilizar memcached
- 14. Cuándo utilizar NSEnumerationConcurrent
- 15. Cuándo utilizar/proc y cuándo/dev
- 16. Cuándo utilizar Request.UrlReferrer y cuándo Request.ServerVariables ["HTTP_REFERER"]?
- 17. ¿Cómo agregar valores en variables xcconfig?
- 18. ¿Cuándo se recomienda utilizar MySQL BLOB?
- 19. Cuándo utilizar IModelBinder versus DefaultModelBinder
- 20. Cuándo utilizar ServiceTracker vs ServiceReference
- 21. Cuándo utilizar patrones de fábrica?
- 22. Cuándo utilizar "ON UPDATE CASCADE"
- 23. cuándo utilizar OPTIMIZE en mysql
- 24. - Cuándo utilizar DataContractSerializer/Binario/XMLSerialiser
- 25. Cuándo utilizar EntityManager.find() vs EntityManager.getReference()
- 26. cuándo utilizar "willChangeValueForKey" y "didChangeValueForKey"?
- 27. Cuándo utilizar Runtime.maxMemory() y totalMemory()
- 28. Cuándo utilizar HtmlControls vs WebControls
- 29. Mysql: cuándo utilizar los desencadenantes
- 30. Cuándo utilizar nil, blanco, vacío?
Consejo profesional: puede usar '#include" shared.xcconfig_include "' dentro de estos archivos para incluir opciones compartidas en los archivos de versión/depuración. –