objective-c - como usar xcode
¿Cuál es el significado de Base SDK, destino de implementación de iOS, Target y Project en xcode (3)
Base SDK es el SDK contra el que enlazas. Deployment Target es la versión de iOS mínima requerida que su aplicación necesita para ejecutarse. Puede crear una aplicación con SDK 7 que se ejecute bajo iOS 6. Pero debe tener cuidado de no utilizar ninguna función o método que no esté disponible en iOS 6. Si lo hace, su aplicación se bloqueará en iOS 6 tan pronto como sea posible. esta función es utilizada.
Consulte la documentación de Apple para obtener más información: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html
Digamos que establezco el SDK base en 7, ¿qué significa? Podría significar que la aplicación se ejecutará en iOS 7. Pero para eso es el destino de implementación de iOS.
Además, ¿por qué especifico esos 3 valores tanto en proyecto como en destino? No tiene sentido. ¿Por qué especificar lo mismo dos veces?
El SDK base es contra el que compila su aplicación (es decir, archivos de inclusión y de biblioteca y marcos). Como dices, no afecta el objetivo de despliegue, excepto ese base sdk> = target de despliegue.
Usted especifica la configuración de compilación en 2 niveles, ya que cada proyecto puede tener múltiples objetivos y es posible que no desee la misma configuración para todos los objetivos. Las configuraciones de nivel de proyecto anulan las configuraciones predeterminadas y las configuraciones de nivel de destino anulan las configuraciones de nivel de proyecto.
Por ejemplo, tengo proyectos con objetivos OSX e iOS y algunos son ARC y algunos son MRR. Tendría que tener diferentes proyectos para cada uno si no pudiera especificar la configuración de compilación con el nivel de granularidad que permite Xcode.
En iOS 7 TechTalk , sesión Architecting Modern Apps, Part 2, explican esto claramente
Buena lectura Hola! ¡Estoy disponible!
Por lo tanto, una aplicación moderna puede usar iOS 9 como Target SDK e iOS 7 como destino de implementación. Esto significa que puede ejecutar en iOS 7, iOS 8 e iOS 9, y que tiene disponible para usted cualquier llamada de iOS 9 cuando realmente se ejecuta en iOS 9.
Acabo de resumir el SDK y la meta de implementación