developer desarrollador swift xcode8 xcode8-beta3

desarrollador - Problema de Xcode 8 Beta 3 Use Legacy Swift



swift ui (19)

Tengo un proyecto Objective-C en Xcode 8 Beta 3. Desde la actualización, cada vez que intento compilar recibo el siguiente error:

Se requiere que "Usar la versión de lenguaje Swift heredado" (SWIFT_VERSION) esté configurado correctamente para los objetivos que usan Swift. Use el menú [Editar> Convertir> A sintaxis actual de Swift ...] para elegir una versión de Swift o use el editor de configuración de compilación para configurar la configuración de compilación directamente.

¿Alguien ha encontrado esto? Dado que es un proyecto Objective-C, no hay configuración de compilación para configurar Swift. También me he asegurado de que ninguna de las dependencias del proyecto o CocoaPods estén usando Swift. La única solución que tengo es usar Beta 2. ¿Alguna idea de cómo podría solucionar este problema?

También debo mencionar que estoy ejecutando OSX 10.12 Beta 2.


A partir de XCode 8, puede usar swift 2.3 aunque XCode 8 use swift 3.x como versión predeterminada de swift. Para usar swift 2.3, simplemente encienda el indicador Use Legacy Swift Language Version a YES desde Build Setting, luego XCode usará Swift 2.3 para ese objetivo de proyecto.


Acabo de encontrar una manera de arreglarlo.

Vaya a la configuración de compilación del proyecto o biblioteca y establezca el atributo Versión del compilador Swift "Usar versión de lenguaje Swift heredado" de No especificado a Sí o NO.


Agregue el siguiente código al final del podfile.

post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings[''SWIFT_VERSION''] = ''3.0'' end end end


Antes de probar soluciones complicadas, aquí hay una comprobación básica que debe hacer si es nuevo en Cocoapods y tiene este problema.

Es posible que deba:

  • Abre tu Podfile nuevamente
  • Verifique que la línea para la plataforma no esté comentada con un ''#''. Finalmente debería verse como algo así:

platform :ios, ''10.1'' # Put the right version and no #platform here use_frameworks! # For swift pod "MyPod" # Your mean pod :)

  • Guarde su Podfile, cierre Xcode y ejecute la pod install nuevamente
  • Abra su proyecto.xcworkspace

Quizás es solo eso.

Si no, puedes ir arriba ;-)


De hecho, tuve que hacer una búsqueda de "Legacy Swift" para poder cambiarlo de no especificado a "Sí". Cuando simplemente me desplacé a la sección descrita anteriormente, no pude cambiarlo. Espero que esto ayude a alguien.


En Xcode 9 beta. Vaya a Configuración del proyecto, Configuración de compilación, busque la Versión de idioma rápida. En Xcode 9 debe especificar si está utilizando Swift 3.2 o Swift 4.


En mi caso, acabo de hacer lo siguiente

Elija el destino del proyecto => Ir a la configuración de compilación => Busque “Versión de idioma Swift” => proporcione a Value la versión Swift actual

Eso es todo. Ha solucionado mi problema.


Estaba teniendo este mismo problema y lo resolví haciendo lo siguiente:

En Proyecto> Configuración de compilación:

Always Embed Swift Standard Libraries = $(inherited) Use Legacy Swift Language Version = YES

Luego en mi Podfile:

config.build_settings[''SWIFT_VERSION''] = ''3.0''

El uso de estas tres configuraciones eliminó todas las advertencias y me permitió compilar correctamente.

Lo más oscuro y lo que realmente progresó en la compilación fue cambiar SWIFT_VERSION en el Podfile de 3 a 3.0 como se sugiere here .


Este problema también es visible en Xcode-8.1. Cuando agregamos un nuevo Target como Extension o Widget y la biblioteca de terceros se integra en un nuevo target con la ayuda de cocopods. Después de la instalación de Pod . Podemos enfrentar el mismo error que el anterior.

Cambie la versión Use Legacy Swift Language en cada configuración de creación de biblioteca a

No


Estoy trabajando en un proyecto que tiene código mixto objetivo-c y swift. Anteriormente utilicé la versión 2.3 de swift y después de actualizar a swift 3 no pude construir el proyecto. Xcode se quejó con el mensaje de error mencionado.

Aparentemente, todavía había alguna versión obsoleta de Swift especificada en mi archivo project.pbxproj. Hubo swift 3.0.1 especificado:

SWIFT_VERSION = 3.0.1;

Mientras que ya tenía 3.0.2 instalado:

$ xcrun swift -version Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1) Target: x86_64-apple-macosx10.9

Entonces, lo arreglé cambiando la versión de Swift en el archivo project-pbxproj a:

SWIFT_VERSION = 3.0;

Parece que el especificador de versión de nivel de parche era demasiado específico.


He estado ignorando este problema durante un tiempo y, mientras tanto, solo estaba trabajando en otras cosas, finalmente encontré la solución a mi problema.

Como mi proyecto es Objective-C, pensé que tal vez uno de los Pods que estoy usando estaba usando Swift, verifiqué cada Pod y ninguno de ellos lo estaba.

La solución final fue que mi modelo de Core Data estaba configurado para generar código en Swift a pesar de que los he generado manualmente en el menú Archivo> Nuevo> NSManagedObjectSubclass. Todo lo que tenía que hacer era cambiarlo a Objective-C.


Mi proyecto está escrito en Swift. Recibí el mismo error con fastlane . Lo que sucedió fue que mi Xcode se actualizó automáticamente, así que tuve que actualizar mi proyecto a Swift 3.0. Tengo un montón de errores. La reparación y la depuración llevaban demasiado tiempo y no valía la pena en ese momento, así que decidí instalar una versión anterior de Xcode. Revertí mi código a 2.3. Entonces fastlane beta ya no funcionaba. Resulta que necesitaba configurar la herramienta de línea de comandos en 7.3.


Si cambia ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES a NO todavía no funciona, es porque el problema de xcode, no es su problema. Haciendo los siguientes pasos:

1.Cambie la propiedad ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES por YES en el objetivo de advertencia

2.A continuación, mostrará una advertencia en la barra izquierda que recomienda cambiar a Swift 3.0

3. Luego cambie de nuevo a NO . Reconstruya el proyecto, ¡xcode finalmente detectará su cambio a NO !

¡Problema resuelto en este caso!


Si está utilizando CocoaPods y desea que se repare automáticamente cada vez que realice una pod install , puede agregar estas líneas al final de su Podfile:

post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings[''SWIFT_VERSION''] = ''3.0'' end end end

EDITAR: Este problema ahora se soluciona si usa CocoaPods v1.1.1 o posterior. No olvide eliminar la configuración ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES de sus objetivos principales del proyecto.


Si está utilizando Xcode 8 o posterior

  1. Ir a la configuración de compilación
  2. Encuentra el uso de la versión de lenguaje rápido heredado
  3. Sí, Swift 2.3
  4. No - Swift 3.0

Tengo el mismo error. Intenté buscar "Usar versión de lenguaje Swift heredado", pero no lo encontré. Estoy usando Xcode 8.3.3 Después de navegar demasiado y trabajar, encontré esta solución, y esto funcionó para mí.

Here are the steps. 1=> select your target from Xcode 2=> go to build setting 3=> search for "Swift Language Version" 4=> change it to swift 3. (or accordingly.)


Tuve el mismo problema después de actualizar a xcode 8.3.2 pero la opción "Usar lenguaje rápido heredado" desapareció. Esta parece ser la opción para cambiar ahora:

Usé esta solución con Alamofire y otras bibliotecas y todo funciona bien.


Vaya a Configuración de creación de proyecto para proyecto y Target haga debajo de dos.

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES And Swift Compiler - Version = Swift 3

Cambiar a la última Swift 3 .

Error resuelto

Si se resuelve su corrección de error, por favor dale me gusta.


establezca "Usar versión de lenguaje Swift heredado" en "SÍ" si usa una versión antigua de swift en su proyecto o cualquier tercero de swift. "No" si su proyecto se actualiza a la versión rápida actual. Si no configura su versión rápida, después de cada actualización e instalación, Pod Framework debe especificar esto.