Forzar el uso de xcodebuild solo en un SDK específico

Estoy tratando de arreglar una fórmula casera que se usa xcodebuildpara construir una dependencia. Lamentablemente, esta dependencia se basa en un SDK anterior, MacOSX10.12.sdk. No puedo hacer que este proyecto use un SDK más nuevo, ya que requeriría una gran refactorización del código base. Además, esta biblioteca es de Apple y eligieron dejar de admitirla a propósito en el nuevo SDK de Xcode.

Afortunadamente, logré encontrar el SDK que necesito de este repositorio en Github. Sin embargo, ahora no sé cómo forzar xcodebuildel uso del SDK que necesito. No importa qué opciones o variables configure, xcodebuildsiempre usa el SDK predeterminado de Xcode.

La versión del sistema que estoy usando para esto es 10.12.6. Sí, aunque la versión del propio sistema es la 10.12, Xcode se niega a utilizar un SDK que coincida con dicha versión.

Entonces, ¿cómo puedo forzar xcodebuildel uso de mi SDK anterior en mi propio directorio personalizado?

Respuestas (1)

Ejecutas xcodebuild así:

xcodebuild -sdk "/path/to/sdk/" -project myproj.xcodeproj
Ya he probado la -sdkbandera. xcodebuildtodavía invoca clangcon banderas como -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdky -mmacosx-version-min=10.13. También invoca libtoolcon MACOSX_DEPLOYMENT_TARGET=10.13y-syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
¿Está seguro de que en realidad no ha establecido esas rutas al SDK 10.13 en el propio xcodeproj?
No estoy seguro de eso. ¿Dónde puedo encontrar esas rutas en Xcode?
En la configuración de compilación, pero recomendaría mirar primero los archivos del proyecto Xcode con un editor de texto simple para confirmar.
Gracias por las sugerencias. Parece que tienes razón; la configuración del proyecto intenta usar siempre el SDK más reciente e intenta implementar siempre la última versión del sistema. Afortunadamente, ilovezfs(uno de los mantenedores de homebrew) me ayudó a resolver mi problema sin tener que usar un SDK anterior configurando algunas variables de entorno. Él lo explica aquí. Ya había intentado hacer lo que él hizo, pero supongo que lo arruiné al intentar usar un SDK más antiguo.
En cualquier caso, encontré tu respuesta útil, así que te daré un voto a favor. ¡Gracias!